SlideShare a Scribd company logo
1 of 36
Oracle
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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;
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 */
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.
Palavras reservadas
 BEGIN
 END
 IF
 ELSE
 END IF
 WHILE
 LOOP
 OPEN, CLOSE, FETCH
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.
Formatando o PL/SQL
 Por exemplo:
 IF - END IF
 LOOP - END LOOP
 DO - WHILE
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.
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;
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.
Exemplo de um bloco
PL/SQL
Examinando alguns
exemplos
 Criando código PL/SQL
 O Código abaixo mostra como criar o
  codigo PL/SQL.

   ( PenDrive )
Examinando alguns
exemplos
 Criando um procedimento
 O código abaixo mostra como criar um
  procedimento.

   (PenDrive)
Examinando alguns
exemplos
 Criando uma função
 O código abaixo mostra como criar uma
  função.

   (PenDrive)
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)
Examinando alguns
exemplos
 Criando um pacote
 O código abaixo mostra como criar um
  pacote.

   (PenDrive)
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)

More Related Content

What's hot

3º Fast Show - SQL Analytics
3º Fast Show - SQL Analytics3º Fast Show - SQL Analytics
3º Fast Show - SQL Analyticsqualidatavix
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPDaniel Brandão
 
Os melhores recursos novos do Oracle Database 12c para desenvolvedores e DBAs...
Os melhores recursos novos do Oracle Database 12c para desenvolvedores e DBAs...Os melhores recursos novos do Oracle Database 12c para desenvolvedores e DBAs...
Os melhores recursos novos do Oracle Database 12c para desenvolvedores e DBAs...Alex Zaballa
 
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5Rogério Moraes de Carvalho
 
Refatoracao de codigo
Refatoracao de codigoRefatoracao de codigo
Refatoracao de codigoPaula Santana
 

What's hot (9)

3º Fast Show - SQL Analytics
3º Fast Show - SQL Analytics3º Fast Show - SQL Analytics
3º Fast Show - SQL Analytics
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
Os melhores recursos novos do Oracle Database 12c para desenvolvedores e DBAs...
Os melhores recursos novos do Oracle Database 12c para desenvolvedores e DBAs...Os melhores recursos novos do Oracle Database 12c para desenvolvedores e DBAs...
Os melhores recursos novos do Oracle Database 12c para desenvolvedores e DBAs...
 
EVOLUÇÃO DA LINGUAGEM DELPHI - ARTIGO
EVOLUÇÃO DA LINGUAGEM DELPHI - ARTIGOEVOLUÇÃO DA LINGUAGEM DELPHI - ARTIGO
EVOLUÇÃO DA LINGUAGEM DELPHI - ARTIGO
 
PHP - Introdução
PHP - IntroduçãoPHP - Introdução
PHP - Introdução
 
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
 
Introdução a php
Introdução a phpIntrodução a php
Introdução a php
 
Shell Script
Shell ScriptShell Script
Shell Script
 
Refatoracao de codigo
Refatoracao de codigoRefatoracao de codigo
Refatoracao de codigo
 

Similar to plsql oracle (20)

2832014 curso plsql
2832014 curso plsql2832014 curso plsql
2832014 curso plsql
 
Plsql
PlsqlPlsql
Plsql
 
424928
424928424928
424928
 
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
 
Apostila de sql server 2008
Apostila de sql server 2008Apostila de sql server 2008
Apostila de sql server 2008
 
Apostila sql
Apostila sqlApostila sql
Apostila sql
 
Apostila sql
Apostila sqlApostila sql
Apostila sql
 
Db2
Db2Db2
Db2
 
Uma_interface_em_linguagem_natural_para
Uma_interface_em_linguagem_natural_paraUma_interface_em_linguagem_natural_para
Uma_interface_em_linguagem_natural_para
 
Introdução a data warehouse e olap
Introdução a data warehouse e olapIntrodução a data warehouse e olap
Introdução a data warehouse e olap
 
Introdução a data warehouse e olap
Introdução a data warehouse e olapIntrodução a data warehouse e olap
Introdução a data warehouse e olap
 
37 consultando tabelas_com_sql_no_sql_server
37 consultando tabelas_com_sql_no_sql_server37 consultando tabelas_com_sql_no_sql_server
37 consultando tabelas_com_sql_no_sql_server
 
37 consultando tabelas_com_sql_no_sql_server
37 consultando tabelas_com_sql_no_sql_server37 consultando tabelas_com_sql_no_sql_server
37 consultando tabelas_com_sql_no_sql_server
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQL
 
Aula1
Aula1Aula1
Aula1
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
ODI Tutorial - Configuração Topologia
ODI Tutorial - Configuração TopologiaODI Tutorial - Configuração Topologia
ODI Tutorial - Configuração Topologia
 
Oracle 11g resumo
Oracle 11g resumoOracle 11g resumo
Oracle 11g resumo
 
Conectores mule
Conectores muleConectores mule
Conectores mule
 
Apostila ib
Apostila ibApostila ib
Apostila ib
 

More from Pablo Garcia

More from Pablo Garcia (7)

Cursor
CursorCursor
Cursor
 
Instalação
InstalaçãoInstalação
Instalação
 
dbms output oracle
dbms output oracledbms output oracle
dbms output oracle
 
Sub-Consultas Oracle
Sub-Consultas OracleSub-Consultas Oracle
Sub-Consultas Oracle
 
Funções Grupo Oracle
Funções Grupo OracleFunções Grupo Oracle
Funções Grupo Oracle
 
SQL Oracle
SQL OracleSQL Oracle
SQL Oracle
 
Intro Arquitetura Oracle
Intro Arquitetura OracleIntro Arquitetura Oracle
Intro Arquitetura Oracle
 

plsql oracle

  • 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.
  • 24. Palavras reservadas  BEGIN  END  IF  ELSE  END IF  WHILE  LOOP  OPEN, CLOSE, FETCH
  • 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.
  • 26. Formatando o PL/SQL  Por exemplo:  IF - END IF  LOOP - END LOOP  DO - WHILE
  • 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.
  • 30. Exemplo de um bloco PL/SQL
  • 31. Examinando alguns exemplos  Criando código PL/SQL  O Código abaixo mostra como criar o codigo PL/SQL.  ( PenDrive )
  • 32. Examinando alguns exemplos  Criando um procedimento  O código abaixo mostra como criar um procedimento.  (PenDrive)
  • 33. Examinando alguns exemplos  Criando uma função  O código abaixo mostra como criar uma função.  (PenDrive)
  • 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)
  • 35. Examinando alguns exemplos  Criando um pacote  O código abaixo mostra como criar um pacote.  (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)