Traté de ver la diferencia entre el procedimiento pl/sql y la función y encontré el enlace http://it.toolbox.com/blogs/oracle-guide/learn-plsql-procedures-and-functions-13030. Primero déjame decirte lo que un desarrollador generalmente hace con el procedimiento pl/sql y la funciónPL/Sql procedimiento vs función?
1) Quería obtener un cierto valor de retorno. Puede lograrlo tanto con la función como con el procedimiento. Con la función si quiere devolver un único valor, puede usar la declaración de devolución. Si desea devolver múltiples valores, puede lograrlo con el parámetro inout. De forma similar, puede obtener el valor de retorno con el parámetro inout from procedure (no con declaración de devolución)
Pero no hace ninguna diferencia para el desarrollador mientras sea capaz de alcanzar su intentención con declaración de retorno o parámetro inout.
por lo que aquí también pueden reemplazarse entre sí.
2) Puede usar DML en Función y procedimiento. Entonces aquí también puede usar cualquiera de estos para cambiar el estado de databse.
Así que no obtengo ningún razonamiento concreto sobre cuál utilizar, ya que ambos pueden reemplazarse entre sí.
La única razón por la que encontré razonable hasta cierto punto es que las funciones se pueden llamar desde SQL, el procedimiento no puede
Podría alguien explicar cuál usar cuándo y por qué?
Véase también [Funciones vs Procedimientos almacenados] (https://forums.oracle.com/forums/thread.jspa?messageID=547397) en Oracle.com – Vache
@Mohit - Creo que se ha formulado una pregunta similar antes . Posible Dup http://stackoverflow.com/questions/1179758/function-vs-stored-procedure-in-sql-server –
@Vache encontré esta declaración Hay una diferencia más entre el procedimiento almacenado y las funciones que almacenan procedimientos compilados únicamente una vez y puede repetirse una y otra vez sin compilarse cada vez, esto mejora el rendimiento y ahorra tiempo; por otro lado, las funciones se compilan cada vez que se llaman en https://forums.oracle.com/forums/thread.jspa?messageID = 547397 no estoy seguro si es realmente cierto? –