A stored procedure and user-defined function (UDF) é um conjunto de instruções SQL e de procedimentos (declarações, atribuições, loops, fluxo de controle, etc.) que são armazenadas no servidor de banco de dados e podem ser invocadas usando a interface SQL.
Quick Example:
No PostgreSQL, tanto os procedimentos armazenados como as funções definidas pelo usuário são criadas com a instrução CREATE FUNCTION. Existem diferenças entre a noção de procedimentos e funções armazenadas em sistemas de banco de dados:
Procedimento Armazenado | Função | |
Usar em uma expressão | ||
Devolver um valor | ||
Devolver valores como OUT parâmetros | ||
Devolver um único conjunto de resultados | (como um função de tabela) | |
Retorna conjuntos de resultados múltiplos |
Então, na maioria dos casos, o propósito de um procedimento armazenado é:
-
Realizar acções sem devolver qualquer resultado (INSERIR, ACTUALIZAR operações i.e.)
-
Devolver um ou mais valores escalares como parâmetros OUT
-
Devolver um ou mais conjuntos de resultados
Usualmente o propósito de uma função definida pelo usuário é processar os parâmetros de entrada e retornar um novo valor.
Ferramentas de relatório
Muitas ferramentas de relatório (Crystal Reports, Reporting Services, ferramentas BI, etc.) permitem especificar uma consulta (instrução SQL SELECT) ou um procedimento armazenado retornando um conjunto de resultados para definir um conjunto de dados para um relatório.
Procedimentos armazenados são muito úteis quando você precisa realizar cálculos complexos antes que os dados estejam disponíveis para um relatório.