Jenaro Centeno Gómez escribió:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Pués a mi personalmente no terminan de agradarme y ya tengo mas de 14 años utilizando esa base de datos. Sin embargo como comentas, quizá para procesos complejos puedan ser de utilidad, y por esto me interesa saber para que los quiere utilizar o emular Luis Felipe en PostgreSQL.

Saludos.

Los packages son una buena herramienta "organizativa", sobre todo cuando tienes centenares de funciones y procedimientos almacenados dentro de una base de datos Oracle. Pero no solo es esto, que casi podría considerarse cosmético (aunque, insisto, muy útil). Como dice Alvaro, las variables globales al package que pueden ser aprovechadas por todas las funciones/procedures/cursores/objetos (triggers, constantes, etc...) de Oracle, vienen muy bien para solventar algunos problemas comunes (tablas mutantes, por ejemplo). Quiza las rules de PostgreSQL sirvan para algo parecido... pero lo ignoro, pues como no forman parte del estandar, no las utilizo.

Y aunque efectivamente hay una cabecera y un cuerpo del package, con las herramientas actuales, se gestionan de forma conjunta (aunque, he de darte la razón, NO de forma única).

Pero los packages se hacen mucho más interesantes gracias a la capacidad de Oracle (espero que se implemente pronto en PostgreSQL) de definir COMMITS o ROLLBACKS parciales dentro de un procedimiento (o de un package), o ejecutar un procedimiento de Oracle SIN commit y efectuar este, dentro de la aplicación cliente (o ROLLBACK). De este modo, la organización sube un peldaño más y permite tener puntos de commit/rollback -gestión de errores- únicos dentro de una serie de funciones/procedimientos. O, por ejemplo, dejar una transacción SIN COMMIT y efectuar una transacción con COMMIT IMPLICITO (PRAGMA transactions) (por ejemplo para la escritura de Log's), sin afectar a la transacción padre que puede ser COMMIT/ROLLBACK, con independencia de que el "Log" YA se haya escrito.

En fín, yo creo que hay muchas funcionalidades en los packages que son excelentes.

Saludos.
--
TIP 2: puedes desuscribirte de todas las listas simultáneamente
   (envía "unregister TuDirecciónDeCorreo" a [EMAIL PROTECTED])

Responder a