- Back to Home »
- 1Z0-144 , Base de Dados , Oracle , Oracle 11G , PL/SQL , Preparação para Certificação , Programar , SQL »
- Preparação para Certificação Oracle - 1Z0-144 : Base de Dados Oracle 11G : Programar em PL/SQL - Parte 1
Preparação para Certificação Oracle - 1Z0-144 : Base de Dados Oracle 11G : Programar em PL/SQL - Parte 1
segunda-feira, 17 de fevereiro de 2014
Identificação dos diferentes tipos de blocos PL/SQL
Um bloco é uma unidade básica num programa PL/SQL.
Blocos de PL/SQL agrupam declarações e demonstrações relacionadas.
Quatro palavras reservadas que definem um bloco PL/SQL são:
-DECLARE
-BEGIN
-EXCEPTION
-END
Estas palavras reservadas são utilizadas para fazer até três secções de um bloco:
-DECLARE:
A secção de declaração é iniciada com a palavra reservada DECLARE e termina quando começa a secção de código executável.
Esta secção é opcional e é utilizada para declarar variáveis, constantes, cursores e tipos de dados definidos pelo utilizador.
-BEGIN:
A secção executável começa com a palavra reservada BEGIN e acaba com a palavra reservada END.
Esta é a única secção obrigatória num bloco PL/SQL e tem de conter pelo menos uma instrução.
A secção executável pode conter um número ilimitado de blocos PL/SQL.
Esta secção contém o "sumo" de um programa PL/SQL.
-EXCEPTION:
O tratamento de exceções é utilizado para apanhar e tratar erros de run-time.
Começa com a palavra reservada EXCEPTION e termina com a palavra reservada END.
Esta secção é opcional.
As três palavras reservadas não acabam com ponto e vírgula (;) , contudo a palavra reservada END termina.
Também todas as instruções SQL e PL/SQL dentro de um bloco terminam com ponto e vírgula.
Exemplo básico de um bloco PL/SQL seria:
DECLARE
v_temp NUMBER;
BEGIN
v_temp :=1;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Este bloco nunca vai criar uma exceção.');
DBMS_OUTPUT.PUT_LINE('Mas se uma ocorrer, cairia aqui.');
END;
Existem dois tipos gerais de blocos PL/SQL:
Blocos Anónimos (Anonymous Blocks) :
Estes são blocos PL/SQL sem nome. Podem ser executados de imediato a partir do SQL*Plus, SQL*Developer ou outra ferramenta similar.
Blocos anónimos também podem ser declarados dentro de uma aplicação onde devia de ser executado.
Não são guardados na base de dados e são passados para o motor de PL/SQL para serem compilados e executados sempre que o bloco correr.
Blocos anónimos não podem ser chamados por outros blocos PL/SQL.
Blocos anónimos podem ser interpretados por ferramentas tipo SQL*Plus ou embebidos num pré compilador Oracle ou ainda num programa OCI(Oracle Call Interface).
Um bloco anónimo é compilado cada vez que é carregado em memória em três estágios:
1. Verificação de Sintaxe (Syntaxe checking): A sintaxe PL/SQL é verificada e uma arvore de análise é gerada.
2. Verificação de Semântica (Semantic checking): Verificação de tipo e verificação adicional da arvore de análise.
3. Geração de Código (Code generation): O código compilado é criado.
Subprogramas (Subprograms) :
Um subprograma é um bloco PL/SQL com nome que é guardado na base de dados.
Por ter nome e estar disponível nas tabelas da base de dados, blocos com nome podem ser invocados repetidamente.
Subprogramas podem conter parâmetros, e os valores destes podem ser diferentes a cada invocação.
Existem dois tipos de subprogramas:
-Procedures
-Funções (Functions)
A principal diferença entre os dois é que as funções devolvem sempre um valor quando chamadas.
Triggers :
Um trigger é um bloco anónimo PL/SQL especial que pode ser definido para atuar antes ou depois de um comando de SQL.
Pode atuar tanto a nível de um comando como atuar sobre linhas afetadas por um comando.
Também é possível definir triggers INSTEAD OF e triggers de Sistema.
