Bloco PL/SQL: Estrutura, Sintaxe e Exemplo Anônimo

⚡ Resumo Inteligente

Um bloco PL/SQL é a unidade básica que agrupa instruções PL/SQL e SQL para que sejam executadas juntas, em vez de linha por linha. Cada bloco possui uma seção de declaração, uma de execução e uma de tratamento de exceções, e os blocos podem ser anônimos ou nomeados.

  • 🧱 Ideia central: Code é agrupado em um bloco que funciona como um todo, misturando lógica procedural com SQL.
  • 📝 Seção de Declaração: Opcional; declara variáveis, cursores, exceções e subprogramas usados ​​no bloco.
  • ▶ ️ Seção de Execução: Obrigatório; começa com BEGIN e contém pelo menos uma instrução executável.
  • 🛡️ Seção de Exceções: Opcional; começa com EXCEPTION e trata erros de tempo de execução.
  • 🏷️ Dois tipos: Blocos anônimos não possuem nome e são executados apenas uma vez; blocos nomeados são armazenados como objetos de banco de dados.
  • 🔁 Blocos nomeados: Procedimentos e funções são blocos nomeados que podem ser chamados repetidamente.
  • O Exterminador do Futuro: END fecha o bloco e uma barra (/) o envia para o compilador.

Estrutura e sintaxe de blocos PL/SQL

O que é um bloco PL/SQL?

Em PL/SQL, o código não é executado em formato de linha única; ele é sempre executado em grupos.ping O código é dividido em um único elemento chamado bloco. Neste tutorial, você aprenderá sobre esses blocos.

Os blocos contêm instruções PL/SQL e SQL. Todas essas instruções são executadas em conjunto, em vez de uma de cada vez.

Estrutura do bloco

Os blocos PL/SQL possuem uma estrutura predefinida na qual o código é agrupado. Abaixo estão as diferentes seções de um bloco PL/SQL:

  1. Seção de declaração
  2. Seção de execução
  3. Seção Tratamento de Exceções

A imagem abaixo ilustra as diferentes seções de um bloco PL/SQL e sua ordem.

Seções e ordem de blocos PL/SQL

Seção de Declaração

Esta é a primeira seção de um bloco PL/SQL e é opcional. É a seção na qual são declaradas as variáveis, cursores, exceções, subprogramas, instruções pragma e coleções necessárias no bloco. Algumas outras características desta parte:

  • Esta seção é opcional e pode ser ignorada caso não sejam necessárias declarações.
  • Deve ser a primeira seção em um bloco PL/SQL, se houver.
  • Começa com a palavra-chave 'DECLARE' para gatilhos e blocos anônimos. Para outros subprogramas, essa palavra-chave não está presente; em vez disso, a parte após o nome do subprograma marca a seção de declaração.
  • Deve sempre ser seguida pela seção de execução.

Seção de Execução

A parte de execução é a parte principal e obrigatória que efetivamente executa o código escrito dentro dela. PL/SQL Espera instruções executáveis; este bloco não pode estar vazio e deve conter pelo menos uma linha executável válida. Algumas outras características desta parte:

  • Pode conter código PL/SQL e código SQL.
  • Pode conter um ou vários blocos em seu interior, na forma de blocos aninhados.
  • Começa com a palavra-chave 'BEGIN'.
  • Deve ser seguido por 'FIM' ou pela seção de tratamento de exceções, se presente.

Seção de Tratamento de Exceções

Exceções são erros inevitáveis ​​que ocorrem em tempo de execução, e para lidar com elas é necessário... Oracle Fornece uma seção de tratamento de exceções em blocos. Esta seção também pode conter instruções PL/SQL e é opcional.

  • Esta é a seção onde uma exceção lançada no bloco de execução é tratada.
  • É a última parte do bloco PL/SQL.
  • O controle desta seção nunca pode retornar ao bloco de execução.
  • Começa com a palavra-chave 'EXCEÇÃO'.
  • Deve sempre ser seguido pela palavra-chave 'FIM'.

A palavra-chave 'END' marca o fim do bloco PL/SQL.

Sintaxe de bloco PL/SQL

Abaixo está a sintaxe da estrutura de bloco PL/SQL.

Sintaxe de bloco PL/SQL

DECLARE --optional
<declarations>

BEGIN --mandatory
<executable statements. At least one executable statement is mandatory>

EXCEPTION --optional
<exception handles>

END; --mandatory
/

Observação: Um bloco deve sempre ser seguido por '/', que envia informações ao compilador sobre o fim do bloco.

Tipos de Blocos PL/SQL

Os blocos PL/SQL são principalmente de dois tipos:

  1. Blocos anônimos
  2. Blocos nomeados

Os dois são comparados rapidamente abaixo, antes de cada um ser descrito.

Aspecto Bloco Anônimo Bloco nomeado
Tem um nome Não Sim
Armazenado no banco de dados Não Sim, como um objeto
Começa com DECLARE ou BEGIN CRIAR
Reutilizável Somente na mesma sessão Disponível para chamada a qualquer momento.

Blocos Anônimos

Blocos anônimos são blocos PL/SQL que não possuem nenhum nome atribuído. Eles precisam ser criados e usados ​​na mesma sessão, pois não são armazenados no servidor como objetos de banco de dados.

Como não são armazenadas no banco de dados, não necessitam de uma etapa de compilação separada. São escritas e executadas diretamente, e a compilação e a execução ocorrem em um único processo. Algumas outras características:

  • Esses blocos não possuem nome de referência.
  • Começam com a palavra-chave 'DECLARE' ou 'BEGIN'.
  • Como não possuem um nome de referência, não podem ser armazenados para uso posterior e devem ser criados e executados na mesma sessão.
  • Eles podem chamar outros blocos nomeados, mas uma chamada para um bloco anônimo não é possível, pois ele não possui referência.
  • Podem conter um bloco aninhado, nomeado ou anônimo, e também podem ser aninhados dentro de qualquer bloco.
  • Podem ter todas as três seções, sendo a seção de execução obrigatória e as outras duas opcionais.

Blocos Nomeados

Os blocos nomeados possuem um nome específico e único. Eles são armazenados como objetos de banco de dados no servidor, podendo ser referenciados ou utilizados enquanto estiverem presentes. O processo de compilação dos blocos nomeados ocorre separadamente quando eles são criados como objetos de banco de dados. Algumas outras características:

  • Esses blocos podem ser chamados de outros blocos.
  • A estrutura do bloco é a mesma de um bloco anônimo, exceto que nunca começa com 'DECLARE'. Em vez disso, começa com 'CREATE', que instrui o compilador a criá-lo como um objeto de banco de dados.
  • Esses blocos podem ser aninhados dentro de outros blocos e também podem conter blocos aninhados.
  • Os blocos nomeados são basicamente de dois tipos:
  1. Procedimento
  2. função

Você pode aprender mais sobre esses blocos nomeados no guia para procedimentos e funções.

Perguntas Frequentes

Apenas a seção de execução, que começa com BEGIN e termina com END. As seções de declaração e tratamento de exceções são opcionais e podem ser omitidas se não forem necessárias.

Um bloco anônimo não tem nome, não é armazenado e é executado na mesma sessão. Um bloco nomeado, como um procedimento ou função, é armazenado como um objeto de banco de dados e pode ser chamado repetidamente.

Em ferramentas como o SQL*Plus, a barra em uma linha separada indica ao compilador que o bloco está completo e deve ser executado. Sem ela, a ferramenta continua aguardando mais informações.

Sim. A IA pode encapsular a lógica em um cabeçalho CREATE PROCEDURE, adicionar parâmetros e mover as declarações para o lugar certo. Teste o resultado, pois uma versão armazenada pode precisar de modos de parâmetro explícitos e tratamento de erros.

Sim. As seções de declaração e exceção são opções independentes. Um bloco pode começar em BEGIN, ignorar as declarações e ainda incluir uma seção EXCEPTION antes de END para capturar erros de tempo de execução.

Resuma esta postagem com: