Para quem já estudou linguagens de programação como C, C++ ou Java, o conceito de funções não é novo. As funções nada mais são do que um grupo de instruções executáveis. Usando Funções, você pode evitar reescrever a mesma lógica de programação repetidamente. Então, como podemos definir uma função no Oracle PL/SQL?
O que são funções PL/SQL no banco de dados Oracle?
No Oracle Database podemos definir uma função PL/SQL como um subprograma autocontido que se destina a realizar alguma tarefa específica bem definida. As funções são chamadas de bloco PL/SQL, o que significa que elas podem ser armazenadas no banco de dados como um objeto de banco de dados e podem ser reutilizadas. Essa também é a razão pela qual alguns livros se referem às funções PL/SQL como funções armazenadas.
Tipos de funções PL/SQL no banco de dados Oracle
Existem dois tipos de funções PL/SQL no banco de dados Oracle, que são
- Funções de passagem por valor e
- Funções de passagem por referência
No banco de dados Oracle, ambos os tipos de funções devem retornar alguns valores e esses valores devem ser um tipo de dados SQL ou PL/SQL válido.
Sintaxe de funções PL/SQL no banco de dados Oracle
CREATE [OR REPLACE] FUNCTION function_name (Parameter 1, Parameter 2…) RETURN datatype IS Declare variable, constant etc. BEGIN Executable Statements Return (Return Value); END;
Eu discuti a sintaxe da função PL/SQL linha por linha no tutorial em vídeo no meu canal do YouTube sobre o mesmo tópico. Eu sugiro que você vá e confira esse tutorial uma vez.
Método de execução de função
Dependendo de sua criatividade e habilidades de programação, uma função PL/SQL pode ser chamada de várias maneiras. Aqui estão algumas maneiras gerais de chamar uma função PL/SQL no Oracle Database
- Você pode usar o utilitário SQL*Plus do banco de dados Oracle para invocar uma função PL/SQL que pode ser chamada de PL/SQL como instrução procedural.
- Um bloco PL/SQL anônimo também pode ser usado para chamar uma função.
- Você pode até chamar uma função diretamente em uma instrução SELECT ou DML.
Fique atento que discutiremos cada um desses métodos de execução de funções PL/SQL no próximo tutorial.
Restrições para chamar uma função
- Uma função que retorna o tipo de dados SQL pode ser usada dentro da instrução SQL e uma função PL/SQL que retorna o tipo de dados PL/SQL só funciona dentro de blocos PL/SQL. Uma exceção a essa regra é que você não pode chamar uma função que contém uma operação DML dentro de uma consulta SQL. No entanto, você pode chamar uma função que executa uma operação DML dentro de INSERT, UPDATE e DELETE.
- Uma função chamada de uma instrução UPDATE ou DELETE em uma tabela não pode consultar (SELECT) ou realizar transações (DMLs) na mesma tabela.
- Uma função chamada a partir de expressões SQL não pode conter o comando TCL (COMMIT ou ROLLBACK) ou o comando DDL (CREATE ou ALTER)
É isso para este tutorial sobre Introdução às Funções PL/SQL no Banco de Dados Oracle. Não deixe de conferir o próximo tutorial onde demonstro a criação da função PL/SQL usando um exemplo bem simples.
Certifique-se também de compartilhar este blog em suas mídias sociais, pois estou distribuindo mercadorias da RebellionRider para um dos vencedores selecionados aleatoriamente todos os meses. Para mais atualizações siga-me no meu Facebook e Twitter.
Obrigado por ler e tenha um ótimo dia!