2. PL/SQL
PL/SQL significa "Procedural Language
extensions to SQL“
PL/SQL é uma extensão da linguagem
procedural do SQL
É uma combinação de SQL, juntamente
com as características das linguagens
de programação procedurais.
3. PL/SQL
Foi desenvolvido pela Oracle
Corporation no início dos anos 90 para
melhorar as capacidades do SQL.
O PL/SQL pode ser usado em bancos
de dados Oracle, no Oracle Server, em
ferramentas clientes, isto é, Oracle
Forms.
4. A história do PL/SQL
Antes de 1991 a única forma de usar
construções procedureis com o SQL era
usar PRO*C. Foi onde as instruções
SQL do Oracle foram embutidas
em código C. O código C era pré-
compilado para converter as instruções
SQL em chamadas de bibliotecas.
5. A história do PL/SQL
Em 1991 o PL/SQL 1.0 foi lançado com
o Oracle Versão 6.0. Ele era muito
limitado nas suas capacidades.
O PL/SQL Versão 2.0 foi lançado com o
Oracle Versão 7.0. Esta era uma
atualização maior. Ele suportava stored
packages, procedures, funções, tabelas
PL/SQL, registros definidos pelo
programador e package extensions.
6. A história do PL/SQL
O PL/SQL Versão 2.1 foi liberado com a
Versão 7.1 do Oracle. Isto permitiu o
uso de stored functions dentro de
instruções SQL e a criação de SQL
dinâmico pelo uso do pacote
DBMS_SQL. Foi também possível
executar instruções de Linguagens de
Definição de Dados de programas
PL/SQL.
7. A história do PL/SQL
A Versão 2.2 PL/SQL foi lançada com a
Versão 7.2 do Oracle. Ele implementava
um envólucro para programas PL/SQL
para proteger o código de olhares
curiosos. Também foi possível agendar
trabalhos do banco de dados com o
pacote DBMS_JOB.
8. A história do PL/SQL
A Versão 2.3 do PL/SQL foi lançado
com a Versão 7.3 do Oracle. Esta
versão aumentou as capacidades das
tabelas PL/SQL e adicionou
funcionalidades de E/S de arquivos.
9. A história do PL/SQL
A Versão 2.4 do PL/SQL foi liberada
com a Versão 8.0 do Oracle. Esta
versão suporta os melhoramentos do
Oracle 8, incluindo Large Objects,
projeto orientado a objetos, tabelas
aninhadas e Oracle advanced queuing.
10. O Mecanismo de PL/SQL
Oracle usa um engine de PL/SQL para
processar as instruções PL/SQL. Um
código de PL/SQL pode ser
armazenado no sistema do cliente
(client-side) ou no banco de dados
(server-side).
11. O Mecanismo de PL/SQL
O conjunto de caracteres do PL/SQL
Programas PL/SQL consistem dos
seguintes caracteres, as letras A- Z, a-
z, os números 0 - 9, os símbolos
~!@#$%&*()[]{};:'"<>,.?/.
O PL/SQL é caso insensitivo, letras
maiúsculas e letras minúsculas são
equivalentes.
12. Um bloco PL/SQL Simples
Cada programa PL/SQL consiste em
instruções SQL e PL/SQL, a partir de
um bloco PL/SQL.
Um bloco PL/SQL consiste em três
seções:
A seção de Declaração (opcional).
A seção de Execução (obrigatório).
A exceção (ou erro) seção de Handling
(opcional).
13. Seção declaração
A seção Declaração de um Bloco
PL/SQL começa com a palavra-chave
reservada DECLARE.
Esta seção é opcional e é usada para
declarar os espaços reservados como
variáveis, constantes, registros e
cursores, que são usadas para
manipular dados na seção de execução.
14. Seção declaração
Podem ser quaisquer variáveis,
constantes e registros, que armazenam
dados temporariamente. Cursores são
também são declarados nesta seção.
15. Seção de Execução
A seção de execução de um bloco
PL/SQL começa com a palavra-chave
reservada BEGIN e termina com END.
Esta é uma seção obrigatória e é a
seção onde a lógica do programa é
escrita para realizar qualquer tarefa.
As construções de programação como
loops, instrução condicional e instruções
SQL formam a parte da seção de
execução.
16. Seção exceção
A seção de exceção de um Bloco
PL/SQL começa com a palavra-chave
reservada EXCEPTION.
Esta seção é opcional e qualquer erro
no programa pode ser tratado nesta
seção, de modo que os blocos PL/SQL
terminam com sucesso.
17. Seção exceção
Se o bloco PL/SQL contém exceções
que não podem ser tratadas, o bloco
termina abruptamente com erros.
18. PL/SQL
Cada declaração deve terminar com um
ponto e vírgula ;
Blocos PL/SQL podem ser aninhados
dentro de outros blocos PL/SQL. Os
comentários podem ser usadas para
documentar código.
19. PL/SQL
PL/SQL é a forma mais rápida de
processar dados em Bancos de Dados
Oracle. Entenda “processar dados”
como não apenas submeter instruções
SQL (UPDATE, SELECT, INSERT e
DELETE) para o banco, mas sim,
efetuar transações que consistem de
várias estruturas de decisão, loops e
outros tipos de processamento.
20. Comentando o nosso
código
Todo bom código PL/SQL merece ser
comentado.
Temos duas maneiras de comentar
código. Podemos usar o duplo '-' para
comentar uma única linha de código.
Tudo depois de -- é ignorado até o fim
da linha.
21. Comentando o nosso
código
Por exemplo:
-- Função que calcula comissão de vendas
IF sales > 0 THEN commission := sales * 0.1; END
IF;
Podemos também colocar nosso comentário em
uma linha que contém código a ser executado.
Por exemplo:
IF sales > 0 THEN commission := sales * 0.1; -- A %
da comissão é de 10 porcento.
END IF;
22. Comentando o nosso
código
Agora quando queremos comentar múltiplas
linhas dentro do PL/SQL podemos usar os
seguintes caracteres /* */. Tudo entre esses
caracteres é ignorado e tratado como um
comentário.
Por exemplo:
PROCEDURE update_balance (cust_id IN
NUMBER) IS /* Procedure: update_balance
Autor: José Silva Descrição: Procedure de
Teste */
23. Palavras reservadas
O PL/SQL possui palavras reservadas,
não é uma boa idéia tentar usar uma
palavra reservada como uma variável
em seu código.
Aqui estão algumas das palavras
reservadas em PL/SQL mas não é a
lista definitiva, verifique sua
documentação atual para a lista
completa.
25. Formatando o PL/SQL
Existe apenas um objetivo do layout
eficaz de seu código PL/SQL e é
'Revelar e reforçar a estrutura lógica do
programa'. PL/SQL beneficia-se por ser
uma linguagem bem estruturada, cada
bloco de código tem um começo e um
fim bem definidos.
27. Criando uma estrutura
lógica
Criar nossa estrutura lógica no PL/SQL
é bastante simples, fazemos isso
usando endentação eficaz do nosso
código. Aqui está um pedaço de código
não-endentado.
28. Criando uma estrutura
lógica
IF sal > 20000 THEN
comm := sal * 0.1;
ELSIF sal > 10000 and sal <20000
THEN
comm := sal * 0.06;
ELSE comm := 0;
END IF;
29. Criando uma estrutura
lógica
No trecho de código anterior é difícil
determinar quais instruções vão em
dada instrução IF. Se endentarmos cada
bloco lógico do código com dois
espaços (algumas pessoas preferem
três) o código torna-se mais legível e
compreensível.
34. Examinando alguns
exemplos
Executando a função get _cust_
name a partir da SQL
O código abaixo mostra como executar
a função GET_CUST_NAME.
(PenDrive)
36. Examinando alguns
exemplos
Usando PL/SQL em um gatilho de
banco de dados
O código abaixo mostra como usar a
PL/SQL em um gatilho de banco de
dados.
(PenDrive)