Summary: neste tutorial, você aprenderá sobre o bloco anônimo PL/SQL e como executá-lo usando as ferramentas SQL*Plus e SQL Developer.
PL/SQL anonymous block overview
PL/SQL é uma linguagem estruturada por blocos cujo código é organizado em blocos. Um bloco PL/SQL consiste em três seções: seções de declaração, executável, e seções de tratamento de exceções. Em um bloco, a seção executável é obrigatória enquanto as seções declaração e tratamento de exceções são opcionais.
Um bloco PL/SQL tem um nome. Funções ou Procedimentos é um exemplo de um bloco nomeado. Um bloco nomeado é armazenado no servidor Oracle Database e pode ser reutilizado mais tarde.
Um bloco sem nome é um bloco anônimo. Um bloco anônimo não é salvo no servidor do Banco de Dados Oracle, então é apenas para uso único. Entretanto, blocos PL/SQL anônimos podem ser úteis para fins de teste.
A figura a seguir ilustra a estrutura de um bloco PL/SQL:
1) Seção de declaração
Um bloco PL/SQL tem uma seção de declaração onde você declara variáveis, aloca memória para cursores, e define tipos de dados.
2) Seção executável
Um bloco PL/SQL tem uma seção executável. Uma seção executável começa com a palavra-chave BEGIN
e termina com a palavra-chave END
. A seção executável deve ter pelo menos uma instrução executável, mesmo que seja a instrução NULL
que não faz nada.
3) Seção de tratamento de exceções
Um bloco PL/SQL tem uma seção de tratamento de exceções que começa com a palavra-chave EXCEPTION
. A seção de tratamento de exceções é onde você captura e trata exceções levantadas pelo código na seção de execução.
Nota um bloco em si é uma instrução executável, portanto você pode aninhar um bloco dentro de outros blocos.
PL/SQL exemplo de bloco anônimo
O exemplo seguinte mostra um bloco simples PL/SQL anônimo com uma seção executável.
A secção executável chama o procedimento DMBS_OUTPUT.PUT_LINE
para mostrar a mensagem "Hello World"
no ecrã.
Executar um bloco PL/SQL anónimo usando SQL*Plus
Após ter o código de um bloco anónimo, pode executá-lo usando SQL*Plus, que é uma interface de linha de comandos para executar instruções SQL e blocos PL/SQL fornecidos pelo Oracle Database.
A figura seguinte ilustra como executar um bloco PL/SQL usando SQL*Plus:
Primeiro, conecte-se ao servidor Oracle Database usando um nome de usuário e senha.
Segundo, ligue a saída do servidor usando o comando SET SERVEROUTPUT ON
para que o procedimento DBMS_OUTPUT.PUT_LINE
exiba texto na tela.
Terceiro, digite o código do bloco e digite uma barra de avanço ( /
) para instruir o SQL*Plus a executar o bloco. Depois de digitar a barra de avanço (/), SQL*Plus executará o bloco e exibirá a mensagem Hello World
no ecrã como mostrado nas ilustrações.
Nota que deve executar o comando SET SERVEROUTPUT ON
em cada sessão que se conectar ao Banco de Dados Oracle para mostrar a mensagem usando o procedimento DBMS_OUTPUT.PUT_LINE
.
Para executar o bloco que introduziu novamente, utilize o comando /
em vez de escrever tudo do zero:
Se quiser editar o bloco de código, utilize o comando edit
. SQL*Plus irá escrever o bloco de código num ficheiro e abri-lo num editor de texto como mostra a figura seguinte:
>
Pode alterar o conteúdo do ficheiro como se segue:
>
E guardar e fechar o ficheiro. O conteúdo do arquivo será escrito no buffer e recompilado.
Depois disso, você pode executar o bloco de código novamente, ele usará o novo código:
Executar um bloco PL/SQL anônimo usando o SQL Developer
Primeiro, conectar ao servidor do banco de dados Oracle usando o Oracle SQL Developer.
Segundo, crie um novo arquivo SQL chamado anonymous-block.sql
residente no diretório C:\plsql
que irá armazenar o código PL/SQL.
Terceiro, digite o código PL/SQL e execute-o clicando no botão Executar ou pressionando o atalho Ctrl-Enter teclado.
Mais exemplos de blocos PL/SQL anónimos
Neste exemplo, primeiro declaramos uma variável l_message
que contém a mensagem de saudação. E então, na seção de execução, usamos o procedimento DBMS_OUTPUT.PUTLINE
para mostrar o conteúdo desta variável em vez de usar uma string literal.
Aqui está a saída:
Hello World!
O próximo exemplo de bloco anônimo adiciona uma seção de tratamento de exceções que captura ZERO_DIVIDE
exceção levantada na seção executável e exibe uma mensagem de erro.
A mensagem de erro é:
ORA-01476: divisor is equal to zero
Agora, você deve saber como criar blocos PL/SQL anônimos e executá-los usando as ferramentas SQL*Plus e Oracle SQL Developer.
- Este tutorial foi útil?
- YesNo