salida procedimientos procedimiento parametros funciones entrada ejemplos ejecutar con bloque anonimo almacenado sql oracle plsql

procedimientos - ¿Procedimiento PL/Sql vs función?



procedimientos y funciones oracle pl/sql (5)

Esta pregunta ya tiene una respuesta aquí:

Intenté buscar la diferencia entre el procedimiento y la función pl / sql y encontré el enlace http://it.toolbox.com/blogs/oracle-guide/learn-plsql-procedures-and-functions-13030 . Primero, permítame decirle lo que generalmente hace un desarrollador con el procedimiento y la función pl / sql

1) Quería obtener algún valor de retorno. Puede obtenerlo tanto con la función como con el procedimiento. Con la función, si desea devolver un solo valor, puede usar la declaración de retorno. Si desea devolver varios valores, puede lograrlo con el parámetro inout. De manera similar, puede obtener un valor de retorno con el parámetro inout del procedimiento (no con la declaración de retorno)

Pero no hace ninguna diferencia para el desarrollador siempre que él sea capaz de lograr su intención con la declaración de retorno o el parámetro inout.

así que aquí también ambos pueden reemplazarse.

2) Puede usar DML tanto en la función como en el procedimiento. Así que aquí también puede usar cualquiera de estos para cambiar el estado de la base de datos.

Así que no tengo ningún razonamiento concreto sobre cuál usar, ya que ambos pueden reemplazarse entre sí en algunos.

La única razón razonable que encontré hasta cierto punto es que las funciones pueden llamarse desde SQL, el procedimiento no puede

¿Alguien podría explicar cuál usar cuándo y por qué?


Hay dos principales principales:

1:Use Procedure to take some action. But use function to return some value. 2:You can call function from sql query but Procedure can''t. 3:Best practice to use Procedure then function if possible.

Gracias.


Lo que hago. Usar funciones si no hay efectos secundarios, procedimientos de lo contrario.

Además, solo las funciones pueden ser "puras" (adecuadas para los índices de funciones) y "segmentadas".


Un procedimiento y una función tienen la misma estructura, excepto que:

El encabezado de una función debe incluir una cláusula RETURN que especifique el tipo de datos del valor de retorno. Un encabezado de procedimiento no puede tener una cláusula de RETORNO.

Una función debe tener al menos una instrucción RETURN en su parte ejecutable. En un procedimiento, la instrucción RETURN es opcional. Para más detalles, vea la declaración de RETORNO.

Para obtener más información, consulte: http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/subprograms.htm#CHDDCFHD


Ya has encontrado la principal diferencia. Creas una función si quieres usarla en SQL. Usted crea un procedimiento, cuando quiere usarlo solo en PL / SQL.


http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/subprograms.htm#i4079

Descripción general de los subprogramas PL / SQL Un subprograma PL / SQL es un bloque PL / SQL denominado que se puede invocar con un conjunto de parámetros. Un subprograma puede ser un procedimiento o una función. Normalmente, se utiliza un procedimiento para realizar una acción y una función para calcular y devolver un valor.