Bloco PL/SQL: ESTRUTURA, Sintaxe, Exemplo ANÔNIMO

O que é bloco PL/SQL?

Em PL/SQL, o código não é executado no formato de linha única, mas é sempre executado agrupando o código em um único elemento denominado Blocos. Neste tutorial, você aprenderá sobre esses blocos.

Os blocos contêm instruções PL/SQL e SQL. Todas essas instruções serão executadas como um todo, em vez de executar uma única instrução por vez.

Estrutura do bloco

Os blocos PL/SQL possuem uma estrutura pré-definida na qual o código deve ser agrupado. Abaixo estão diferentes seções de blocos 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 os diferentes blocos PL/SQL e sua ordem de seção.

Estrutura do bloco

Seção de Declaração

Esta é a primeira seção dos blocos PL/SQL. Esta seção é uma parte opcional. Esta é a seção na qual serão declaradas as declarações de variáveis, cursores, exceções, subprogramas, instruções pragma e coleções necessárias no bloco. Abaixo estão mais algumas características desta parte.

  • Esta seção específica é opcional e pode ser ignorada se nenhuma declaração for necessária.
  • Esta deve ser a primeira seção em um bloco PL/SQL, se houver.
  • Esta seção começa com a palavra-chave 'DECLARE' para gatilhos e bloqueio anônimo. Para outros subprogramas, esta palavra-chave não estará presente. Em vez disso, a parte após a definição do nome do subprograma marca a seção de declaração.
  • Esta seçã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 realmente executa o código que está escrito dentro dela. Desde o PL/SQL espera as instruções executáveis ​​deste bloco, este não pode ser um bloco vazio, ou seja, deve conter pelo menos uma linha de código executável válida. Abaixo estão mais algumas características desta parte.

  • Isso pode conter código PL/SQL e código SQL.
  • Isso pode conter um ou mais blocos dentro dele como um bloco aninhado.
  • Esta seção começa com a palavra-chave 'BEGIN'.
  • Esta seção deve ser seguida por 'END' ou pela seção Tratamento de Exceções (se presente)

Seção de Tratamento de Exceções

A exceção é inevitável no programa que ocorre em tempo de execução e para lidar com isso o Oracle forneceu uma seção de tratamento de exceções em blocos. Esta seção também pode conter instruções PL/SQL. Esta é uma seção opcional dos blocos PL/SQL.

  • Esta é a seção onde a exceção levantada no bloco de execução é tratada.
  • Esta seção é a última parte do bloco PL/SQL.
  • O controle desta seção nunca pode retornar ao bloco de execução.
  • Esta seção começa com a palavra-chave 'EXCEPÇÃO'.
  • Esta seção deve ser sempre seguida pela palavra-chave 'END'.

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
/

Nota: Um bloco deve sempre ser seguido por '/' que envia ao compilador a informação sobre o final do bloco.

Tipos de bloco PL/SQL

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

  1. Blocos anônimos
  2. Blocos Nomeados

Blocos anônimos

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

Como não precisam ser armazenados no banco de dados, não precisam de etapas de compilação. Eles são escritos e executados diretamente, e a compilação e a execução acontecem em um único processo.

Abaixo estão mais algumas características dos blocos anônimos.

  • Esses blocos não possuem nenhum nome de referência especificado para eles.
  • Esses blocos começam com a palavra-chave 'DECLARE' ou 'BEGIN'.
  • Como esses blocos não possuem nenhum nome de referência, eles não podem ser armazenados para fins posteriores. Eles devem ser criados e executados na mesma sessão.
  • Eles podem chamar os outros blocos nomeados, mas a chamada para o bloco anônimo não é possível porque não possui nenhuma referência.
  • Ele pode conter um bloco aninhado que pode ser nomeado ou anônimo. Também pode ser aninhado em qualquer bloco.
  • Esses blocos podem ter todas as três seções do bloco, sendo a seção de execução obrigatória, as outras duas seções são opcionais.

Blocos nomeados

Os blocos nomeados possuem um nome específico e exclusivo para eles. Eles são armazenados como objetos de banco de dados no servidor. Como estão disponíveis como objetos de banco de dados, eles podem ser referenciados ou usados, desde que estejam presentes no servidor. O processo de compilação para blocos nomeados ocorre separadamente durante a criação deles como objetos de banco de dados.

Abaixo estão mais algumas características dos blocos nomeados.

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

Aprenderemos mais sobre esses blocos nomeados nos tópicos “Procedimento” e “Função” em um tutorial posterior.

Resumo

Após este tutorial, você deverá estar ciente dos blocos PL/SQL e seus tipos, diferentes seções de blocos e seus usos. A descrição detalhada dos blocos PL/SQL nomeados será abordada no tutorial posterior.