Diferencia entre el procedimiento y la función almacenados

Diferencia entre el procedimiento y la función almacenados

Procedimiento almacenado vs función
 

Los procedimientos y funciones almacenados son dos tipos de bloques de programación. Ambos deben tener nombres de llamadas. Esos nombres de llamadas se utilizan para llamarlos dentro de otro bloque de programación, como las funciones de procedimientos y paquetes o consultas SQL. Ambos tipos de objetos aceptan parámetros y realizan la tarea detrás de esos objetos. Esta es la sintaxis (en Oracle) para crear un procedimiento almacenado,

 crear o reemplazar el procedimiento de procedimiento (parámetros)

 como

 comenzar

     declaraciones;

 excepción

     manejo de excepciones

 fin;

Y aquí está la sintaxis para crear una función (en Oracle),

Crear o reemplazar función function_name (parámetros)

return return_datatype

como

comenzar

declaraciones;

return return_value/variable;

excepción;

manejo de excepciones;

fin;

Procedimientos almacenados

Como se mencionó anteriormente, los procedimientos almacenados se denominan bloques de programación. Aceptan parámetros como entrada y proceso del usuario de acuerdo con la lógica detrás del procedimiento y dan el resultado (o realizan una acción específica). Estos parámetros pueden estar dentro, fuera e inout tipos. Declaraciones variables, asignaciones variables, declaraciones de control, bucles, consultas SQL y otras funciones/procedimientos/llamadas de paquete pueden estar dentro del cuerpo de procedimientos.

Funciones

Las funciones también se denominan bloques de programación, que deben devolver un valor usando la declaración de retorno, y antes de que devuelva un valor, su cuerpo también realiza algunas acciones (según la lógica dada). Las funciones también aceptan parámetros para ejecutarse. Las funciones se pueden llamar dentro de las consultas. Cuando se llama a una función dentro de una consulta selecta, se aplica a cada fila del conjunto de resultados de la consulta de selección. Hay varias categorías de funciones de Oracle. Ellos son,

  • Funciones de una sola fila (devuelve un solo resultado para cada fila de la consulta)

Hay subcategorías de una sola fila de funciones.

  • Función numérica (Ej: ABS, SIN, COS)
  • Función de caracteres (Ej: Concat, InitCap)
  • Función de hora de fecha (Ej: Last_Day, Next_day)
  • Funciones de conversión (ex: to_char, to_date)
  • Función de recolección (Ej: cardinalidad, set)
  • Funciones agregadas (devuelve una sola fila, basada en un grupo de filas. Ej: AVG, SUM, MAX)
  • Funciones analíticas
  • Funciones de referencia de objetos
  • Funciones del modelo
  • Funciones definidas por el usuario

¿Cuál es la diferencia entre la función y el procedimiento almacenado??

• Todas las funciones deben devolver un valor utilizando la declaración de retorno. Los procedimientos almacenados no devuelven valores utilizando la declaración de retorno. La declaración de devolución dentro de un procedimiento devolverá su control al programa de llamadas. Los parámetros de salida se pueden usar para devolver los valores de los procedimientos almacenados.

• Las funciones se pueden llamar dentro de las consultas, pero los procedimientos almacenados no se pueden usar dentro de las consultas.

• El tipo de datos de retorno debe incluirse para crear una función, pero en el procedimiento almacenado DDL, no es.