Procedimentos vs Funções na Programação
Procedimentos e Funções em programação, permitem aos programadores agrupar instruções em um único bloco e pode ser chamado de vários lugares dentro do programa. O código fica mais fácil de entender e mais compacto. Ao realizar as modificações em um único local, todo o código será afetado. Com a ajuda de funções e procedimentos; um código linear e longo pode ser dividido em seções independentes. Eles fornecem mais flexibilidade para a codificação de várias linguagens de programação e bancos de dados.
O que são funções?
Funções são capazes de aceitar parâmetros que também são conhecidos como argumentos. Eles realizam as tarefas de acordo com esses argumentos ou parâmetros e retornam valores de determinados tipos. Podemos explicar melhor com a ajuda de um exemplo: Uma função aceita uma string como parâmetro e retorna a primeira entrada ou registro de um banco de dados. Ele leva em consideração o conteúdo de um campo específico que começa com esses caracteres.
A sintaxe da função é a seguinte:
CREATE OR REPLACE FUNCTION my_func
(p_name IN VARCHAR2:='Jack') return varchar2 as begin … end
O que são procedimentos?
Procedures podem aceitar os parâmetros ou argumentos e realizam tarefas de acordo com esses parâmetros. Se um procedimento aceita uma string como parâmetro e fornece uma lista com registros no banco de dados para os quais o conteúdo de um campo específico começa com esses caracteres.
A sintaxe dos procedimentos é a seguinte:
CREATE OR REPLACE PROCEDURE my_proc
(p_name IN VARCHAR2:='Jack') as begin… end
Principalmente, existem duas maneiras pelas quais um parâmetro é passado em funções e procedimentos; por valor ou por referência. Se o parâmetro for passado por um valor; a modificação é afetada dentro da função ou procedimento sem afetar o valor real do mesmo.
Por outro lado, se os parâmetros são passados por referências; o valor real deste parâmetro será alterado onde quer que seja chamado dentro do código conforme as instruções.
Diferença entre procedimentos e funções
• Quando o parâmetro é passado no procedimento; ela não retorna nenhum valor enquanto uma função sempre retorna um valor.
• Uma das principais diferenças em ambos é que os procedimentos não são usados em bancos de dados, enquanto as funções desempenham um papel importante no retorno de valores de um banco de dados.
• Os procedimentos são capazes de retornar vários valores e as funções são capazes de retornar valores limitados.
• As operações DML podem ser usadas em procedimentos armazenados; no entanto, eles não são possíveis em funções.
• As funções podem retornar apenas um valor e é obrigatório, enquanto os procedimentos podem retornar valores n ou zero.
• Em funções, o tratamento de erros não pode ser feito, mas pode ser realizado em procedimentos armazenados.
• Parâmetros de entrada e saída podem ser passados em procedimentos enquanto no caso de funções; somente parâmetros de entrada podem ser passados.
• Funções podem ser chamadas a partir de procedimentos, enquanto não é possível chamar um procedimento de uma função.
• O gerenciamento de transações pode ser considerado em procedimentos e não pode ser considerado no caso de funções.