Cita:
Empezado por cointec
No es lo mismo devolver un cursor, que el propio procedimiento sea un cursor.
Select *
From procedimiento( aram1, aram2,..., : paramN )
Un procedimiento no se realiza para sustituir un simple select como en el caso que has puesto, su objetivo es realizar un procesamiento más o menos complejo, donde pueden intervenir consultas de varias tablas y operaciones más o menos complejas con los datos obtenidos de ellas, por ejemplo. Una de sus funciones es no es sustituir un simple select. Y el resultado de todo ello es un conjunto de registros que puedes tratar como una tabla.
Quizá podrías mostrar como devolver un recordset con características similares en sqlserver, mysql u oracle para poder comparar realmente si es más o menos complejo, porque no creo que se pueda comparar el select que has puesto como ejemplo con el procedimiento almacenado que se ha escrito.
|
Claro, un SP contiene dentro de si mucho código PLSQL, pero en el caso que se trata es meramente sobre como devolver un resulset. y si, aunque parezca muy simple, realmente en otros motores de bases de datos devolverlos es muy sencillo... no necesitas tanto trabajo para devolver un simple resultset.
esto
Código SQL
[-]
Select *
From procedimiento( aram1, aram2,..., : paramN )
Es exactamente lo mismo que cualquiera de estos:
Código SQL
[-]
CALL procedimiento( param1, param2,..., : paramN );
Exec procedimiento( param1, param2,..., : paramN );
Te devuelven todos un resulset