Diferença entre procedimento armazenado e função

Anonim

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 é.