Variables Globales STORAGE PROCEDURE

Proteuss
25 de Abril del 2005
Hola a todos,

Tengo el siguiente problema,

Existen unas variables globales en un paquete, el cual tiene unos valores asignados. Si dichos valores son modificados en algún procedimiento interno al paquete, esos valores varían, de manera, que en nuevas ejecuciones, no contienen los valores iniciales.

Alguien sabe como puedo dejarlas de forma que tengan sus valores iniciales en todas las ejecuciones por Usuario / Sesion?...

gracias de antemano.
Juan.




trazom
25 de Abril del 2005
No entiendo bien la pregunta.
Si quieres que los valores de esas variables nunca cambien, entonces porque no usas constantes ?
De todas formas, si declaras una variable global a un paquete, solo sera global a tu sesion, pero no a los demas usuarios. Es decir que solo veras los cambios que tu le hiciste.
Si quieres compartir y modificar una variable entre todos los usuarios de todas las sesiones, te
sugiero usar un campo de una tabla, o una tabla con un solo campo.

Saludos.

Proteuss
25 de Abril del 2005
Mi problema es el siguiente,

En mi misma sesion, necesito saber si hay alguna forma de reiniciar los valores por defecto de la variables, asignados en la cabecera del package.

No puedo utilizar constantes, pues deben de ir modificandose, para tener constancia en otros procedimientos del mismo paquete / sesion.

Ejemplo:

CREATE OR REPLACE PACKAGE nomPaquete AS

variable_global tipo_variable := 1;

procedure nomproc ;

procedure nomproc2;


end nomPaquete ;


CREATE OR REPLACE PACKAGE BODY nomPaquete AS


procedure nomproc is

BEGIN

variable_global := variable_global + 1;

END nomproc;


....................................


end nomPaquete;

---------------------------------------------------

Si yo ejecuto el procedimiento asigno a mi variable el numero 2. Pues bien, si yo lo ejecuto otra vez, mi varible valdría 3. Esto es lo que quiero solucionar, quiero que valga otra vez 2.


Preguntando en el foro de Oracle, me han dado una idea, que es crear otro procedimiento aparte que inicialize esa variable. Este nuevo procedimiento será invocado cada vez que ejecute el paquete.


Un saludo
Juan