sql >> Base de Datos >  >> RDS >> Oracle

Funciones vs procedimientos en Oracle

La diferencia es:una función debe devolver un valor (de cualquier tipo) por definición predeterminada, mientras que en el caso de un procedimiento necesita usar parámetros como OUT o IN OUT parámetros para obtener los resultados. Puede usar una función en un SQL normal donde como no puede usar un procedimiento en SQL declaraciones.

Algunas diferencias entre funciones y procedimientos

  1. Una función siempre devuelve un valor utilizando la declaración de retorno, mientras que un procedimiento puede devolver uno o más valores a través de parámetros o puede no devolver nada. Aunque, OUT Los parámetros aún se pueden usar en funciones, no son recomendables ni hay casos en los que se pueda encontrar la necesidad de hacerlo. Usando OUT El parámetro restringe el uso de una función en una instrucción SQL.

  2. Las funciones se pueden usar en declaraciones SQL típicas como SELECT , INSERT , UPDATE , DELETE , MERGE , mientras que los procedimientos no pueden.

  3. Las funciones normalmente se usan para cálculos, mientras que los procedimientos normalmente se usan para ejecutar la lógica comercial.

  4. Oracle proporciona la posibilidad de crear "Índices basados ​​en funciones" para mejorar el rendimiento de la declaración SQL posterior. Esto se aplica cuando se realiza la función en una columna indexada en la cláusula where de una consulta.

Más información sobre funciones vs. Trámites aquí y aquí.