Introdução ao ORACLE PL/SQL

Parte 1 – Fundamentos
Introdução à linguagem PL/SQL. PL/SQL engine. PL/SQL na arquitetura
Client/Server. Formação de data names. Estrutura da linguagem. DECLARATION
SECTION. EXECUTABLE SECTION. EXCEPTION SECTION. Tipos de variáveis
existentes no PL/SQL. Declarando uma variável. Incluindo um comentário no
programa. Escopo e visibilidade de uma variável .

Parte 2 – Estruturas de controle
Comando de atribuição. Concatenação de strings. Exibindo conteúdo de variáveis.
Utilizando DBMS_OUTPUT. Expressões aritméticas. Comandos IF-THEN_ELSE, IFELSIF,
GOTO e NULL. Expressões lógicas e operadores de comparação. O loop
simples. Comandos EXIT e EXIT WHEN. O loop FOR. O loop WHILE. Tratamento
do nullvalue no PL/SQL.

Parte 3 – Functions e Procedures
Conceitos básicos de uma função. A chamada de uma função. Formato geral de
uma stored function. Sintaxe para a criação de uma stored function. Exemplo de
uma stored function. Executando uma stored function. Conceitos básicos de uma
procedure. Formato geral de uma stored procedure. Sintaxe para a criação de uma
stored procedure. O comando SHOW ERRORS. A passagem de parâmetros. Tipos
de parâmetros. IN, OUT, IN OUT. Parâmetros default. Passagem de parâmetros
posicional, nomeada e combinada. Exemplo de uma stored procedure. Executando
uma stored procedure. Obtendo informação sobre functions e procedures.

Parte 4 – Trabalhando com cursores
O conceito de cursor. A lógica de utilização de um cursor. Declarar, abrir, ler e
fechar. O uso do cursor no processamento sequencial. A sintaxe para declaração
de um cursor. Declaração de um registro. O atributo %ROWTYPE. Comandos
OPEN, FETCH e CLOSE. Os atributos %ROWCOUNT, %NOTFOUND, %ISOPEN. O
processamento de um cursor em loop explícito e implícito. Cláusula FOR UPDATE.
Passagem de parâmetros para um cursor. Variáveis do tipo cursor.

Parte 5 – Tratamento de erros no PL/SQL
Conceito de exception. Exceptions pré-definidas NO_DATA_FOUND,
TOO_MANY_ROWS, VALUE_ERROR, CURSOR_ALREADY_OPEN. Comportamento
do PL/SQL diante da ocorrência de uma exception. Formato geral de uma
exception section. Cláusula WHEN OTHERS. Declaração de uma exception pelo
usuário. Declarativo PRAGMA_EXCEPTION_INIT. Comando RAISE. As funções
SQLCODE e SQLERRM. O comando RAISE_APPLICATION_ERROR.

Parte 6 – Triggers
Conceito de trigger. Usos de um trigger. Usando um trigger para garantir a
integridade dos dados. Usando um trigger para automatizar cálculos na base.
Gravação de trilhas de auditoria. Sintaxe para a criação de um trigger. Trigger de
tabela e trigger de linha. Cláusulas BEFORE e AFTER. Cláusula WHEN. Cláusula
FOR EACH ROW. Evento de disparo de um trigger. Cláusulas BEFORE e AFTER.
Valores :NEW e :OLD. Cláusulas DELETING, UPDATING, INSERTING. Restrições no
uso de triggers. O erro de “mutating tables”. Ordem de execução dos triggers.
Habilitando e desabilitando triggers. Eliminando um trigger. Obtendo informações
sobre triggers.

Parte 7 – Packages
Conceito de package. Sintaxe para a criação de um package. Package Specification
e package body. Package público e privado. Criando e executando um package.
Exemplo de um package. Utilizando um package para inicializações. Executando
um package. Eliminando um package. O uso de packages para criação de variáveis
públicas. Recuperando informações sobre packages.

Parte 8 – Tópicos avançados em PL/SQL
A implementação de tabelas em memória no PL/SQL. Privilégios na execução de
procedures e functions. O conceito de transação autonôma. Uso de transações
autonômas no PL/SQL. O conceito de dependência procedural.