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])