Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Funções vs procedimentos no Oracle


A diferença é que uma função deve retornar um valor (de qualquer tipo) por definição padrão dele, enquanto no caso de um procedimento você precisa usar parâmetros como OUT ou IN OUT parâmetros para obter os resultados. Você pode usar uma função em um SQL normal onde como você não pode usar um procedimento em SQL declarações.

Algumas diferenças entre funções e procedimentos

  1. Uma função sempre retorna um valor usando a instrução return enquanto um procedimento pode retornar um ou mais valores por meio de parâmetros ou pode não retornar nada.Embora, OUT parâmetros ainda podem ser usados ​​em funções, eles não são aconselháveis ​​nem há casos em que se possa encontrar a necessidade de fazê-lo. Usando OUT O parâmetro restringe o uso de uma função em uma instrução SQL.

  2. As funções podem ser usadas em instruções SQL típicas como SELECT , INSERT , UPDATE , DELETE , MERGE , enquanto os procedimentos não podem.

  3. As funções são normalmente usadas para cálculos, enquanto os procedimentos são normalmente usados ​​para executar a lógica de negócios.

  4. A Oracle oferece a possibilidade de criar "Índices Baseados em Função" para melhorar o desempenho da instrução SQL subsequente. Isso se aplica ao executar a função em uma coluna indexada na cláusula where de uma consulta.

Mais informações sobre funções vs. Procedimentos aqui e aqui.