Aqui estaremos discutindo sobre a estrutura e os tipos de blocos do Oracle PLSQL
O que é PL/SQL
PL/SQL é a extensão proprietária da Oracle para SQL que permite recursos de linguagem procedural. Ele fornece todos os recursos da engenharia de software moderna, como encapsulamento de dados, tratamento de exceções, ocultação de informações e orientação a objetos
Por que usar PLSQL
1) Integração com ferramentas de desenvolvimento como formulários Oracle, Relatórios
2) Várias instruções podem ser agrupadas em um único bloco plsql e enviadas para o servidor oracle, o que resulta em menos tráfego de rede
3) Desenvolvimento de programa modularizado:Divida a lógica/problema complexo em um conjunto de módulos lógicos gerenciáveis e bem definidos e implemente-os usando blocos
4) Portabilidade:Por ser nativo do servidor Oracle, pode ser movido facilmente
5) Fornece estruturas de controle de linguagem procedural como condição if, looping
6) Tem a capacidade de lidar com erros e gerar exceção com base nele
Estrutura de bloco PLSQL
Um bloco plsql é feito em três seções Declare, executável e exceção.
DECLARAR(Opcional) – esta seção contém variáveis, constantes, cursores e exceções definidas pelo usuário. BEGIN(Obrigatório) EXECUTÁVEL – esta seção contém quaisquer instruções SQL. EXCEÇÃO (opcional)- esta seção contém os manipuladores de erro. END(Obrigatório); |
Portanto, a declaração e a seção de exceção são opcionais.
Exemplo de estrutura de bloco
DECLARE l_number NUMBER; BEGIN l_number := 1; Dbms_output.put_line(l_number); Exception When others then Dbms_output.put_line(‘Exception occurred’); END; /
Pontos importantes para anotar
1) Todas as variáveis e constantes são definidas na seção de declaração
2) Coloque um ponto e vírgula; no final da instrução sql ou instrução de controle plsql
3) Em PL/SQL todos os erros são tratados no bloco Exception.
4) Begin e End são instruções obrigatórias que indicam o início e o fim do Bloco PL/SQL.
5) Variáveis e Constantes devem ser declaradas antes de serem usadas.
6) Valores podem ser atribuídos a variáveis diretamente usando o operador de atribuição “:=”, por meio de uma instrução SELECT … INTO ou Quando usado como parâmetro OUT ou IN OUT de um procedimento.
7) A palavra-chave da seção Declare, Begin ,exception não é seguida por ponto e vírgula
8) End e todas as outras instruções plsql requerem um ponto e vírgula para encerrar a instrução
Tipos de bloco PLSQL
Anônimo :Blocos anônimos são blocos sem nome. Eles são declarados no ponto da aplicação em que precisam ser executados
DECLARE l_number NUMBER; BEGIN l_number := 1; Dbms_output.put_line(l_number); Exception When others then Dbms_output.put_line(‘Exception occurred’); END; /
Função :São nomes de blocos PLSQL que podem aceitar parâmetros e computar alguma função e retorná-la. Pode ser armazenado no servidor ou aplicativo Oracle
Syntax FUNCTION name [(parameter[, parameter, …])] RETURN datatype IS [local declarations] BEGIN executable statements [EXCEPTION exception handlers] END [name]; Example Create or replace function FUNC return number As l_number NUMBER; BEGIN Select count(*) into l_number from emp; return(l_number) END; /
Procedimento :São nomes de blocos PLSQL que podem aceitar parâmetros e processar algumas informações e podem ou podem retornar valores. Pode ser armazenado no servidor ou aplicativo Oracle
Syntax PROCEDURE name [(parameter[, parameter, …])] IS [local declarations] BEGIN executable statements [EXCEPTION exception handlers] END [name]; Example Create or replace procedure remove_emp (emp_id number) As BEGIN Delete from emp where employee_id=emp_id; END; /
Diferença entre função e procedimento
Função | Procedimento |
A função deve retornar um valor | O procedimento não precisa |
Sintaxe | Sintaxe |
Nome da FUNÇÃO (lista de argumentos …..) O tipo de dados de retorno é | Nome do PROCEDIMENTO (lista de parâmetros…..) |
declarações de variáveis locais | é |
Iniciar | declarações de variáveis locais |
declarações executáveis | INICIAR |
Exceção | Declarações executáveis. |
manipuladores de execução | Exceção. |
Fim; | manipuladores de exceção |
fim; | |
Função pode ser usada em SQL com alguma restrição | O procedimento não pode ser chamado diretamente do SQL. |
Sintaxe e Diretrizes do Bloco Oracle PLSQL
1) Os literais de caracteres e datas devem ser colocados entre aspas simples
2) Coloque comentários de várias linhas entre /* e */
3) A maioria das funções sql podem ser usadas em PLSQL. Temos a função char,date,number disponível em PLSQL assim como SQL
4) agrupar por função não estão disponíveis em PLSQL. Ele só pode ser usado na instrução sql no PLSQL
5) Devemos usar a indentação adequada para tornar o código legível
6) Recomenda-se escrever a instrução DML em letras maiúsculas, palavras-chave PLSQL, tipos de dados em letras maiúsculas e colocar identificadores e parâmetros em letras minúsculas para melhor legibilidade e manutenção
Links relacionados
Documentação do Oracle PLSQL
Pergunta mais comum da entrevista do Oracle PlSQL 25
Oracle sql e plsql
como escrever consultas sql