Diferença entre procedimento armazenado e função
Procedimento armazenado versus função
Os procedimentos e funções armazenados são dois tipos de blocos de programação. Ambos devem ter nomes de chamadas. Esses nomes de chamadas são usados para chamá-los dentro de outro bloco de programação, como funções de procedimentos e pacotes ou consultas SQL. Ambos os tipos de objeto aceitam parâmetros e executam a tarefa por trás desses objetos. Esta é a sintaxe (em ORACLE) para criar um procedimento armazenado,
crie ou substitua procedimento procedurename (parâmetros)
como
comece
instruções;
exceção
exception_handling
fim;
E aqui está a sintaxe para criar uma função (em ORACLE),
crie ou substitua a função function_name (parâmetros)
retorna return_datatype
como
comece as declarações
;
return return_value / variable;
exceção;
exception_handling;
fim;
Procedimentos armazenados
Como mencionado acima, os procedimentos armazenados são denominados blocos de programação. Eles aceitam parâmetros como entrada e processo de usuário de acordo com a lógica por trás do procedimento e dão o resultado (ou executam uma ação específica). Esses parâmetros podem ser IN, OUT e INOUT. Declarações de variáveis, atribuições de variáveis, instruções de controle, loops, consultas SQL e outras funções / chamadas de procedimento / pacote podem estar dentro do corpo dos procedimentos.
Funções
As funções também são denominadas blocos de programação, que devem retornar um valor usando a instrução RETURN, e antes de retornar um valor, seu corpo também executa algumas ações (de acordo com a lógica dada). As funções também aceitam parâmetros para executar. As funções podem ser chamadas dentro das consultas. Quando uma função é chamada dentro de uma consulta SELECT, ela se aplica a cada linha do conjunto de resultados da consulta SELECT. Existem várias categorias de funções ORACLE. Eles são,
- Funções de uma linha (retorna um único resultado para cada linha da consulta)
Existem sub categorias de uma única linha de funções.
- Função numérica (Ex: ABS, SIN, COS)
- Função de caractere (Ex: CONCAT, INITCAP)
- Função de hora de data (Ex: LAST_DAY, NEXT_DAY)
- Funções de conversão (Ex: TO_CHAR, TO_DATE)
- Função de coleta (Ex: CARDINALITY, SET)
- Funções de agregação (Retorna uma única linha, com base em um grupo de linhas. Ex: AVG, SUM, MAX)
- Funções analíticas
- Funções de referência de objeto
- Funções do modelo
- Funções definidas pelo usuário
Qual a diferença entre a função e o Procedimento armazenado? • Todas as funções devem retornar um valor usando a instrução RETURN. Os procedimentos armazenados não retornam valores usando a declaração RETURN. A declaração RETURN dentro de um procedimento retornará seu controle ao programa de chamada. Os parâmetros OUT podem ser usados para retornar valores dos procedimentos armazenados. • As funções podem ser chamadas dentro das consultas, mas os procedimentos armazenados não podem ser usados dentro das consultas. • O tipo de dados DEVOLUÇÃO deve ser incluído para criar uma função, mas no procedimento armazenado DDL, não é. |