Variable glovales en oracle 9i

¿Cómo utilizo una varialbe global en un trigger?
He probado lo situiente y me da error
Create or replace trigger
"INF_TRIG"."TR_CLIENTES_DIR_FISCAL" BEFORE
INSERT ON "INFOTECK"."CLIENTES_DIR_FISCAL"
FOR EACH ROW
DECLARE
aux_ip varchar2(30);
aux_host varchar2(60);
BEGIN
:NEW.ID_EMPLEADO:=:global.usuario;
select sys_context('userenv','ip_address')
into aux_ip
from dual;
:NEW.DIRECCION_IP:=aux_ip;
select sys_context('userenv','host')
into aux_host
from dual;
:NEW.EQUIPO:=aux_host;
END;
/

1 Respuesta

Respuesta
1
No puedes utilizar variables globales del entorno de FORMS en la Base de Datos.
Lo que debes hacer, si quieres el usuario de windows, es obtenerlo de la vista V$SESSION. Hay una columna llamada OSUSER.
Si quieres otra cosa que no sea el usuario debes mantenerla por medio de un PACKAGE. En ellos se pueden utilizar variables globales que toman valor en el entorno de la sesión de usuario.
Para utilizarla no hay que hacer nada más que declararla en el PACKAGE. Se utiliza luego como nombre_package. nombre_variable
Mandame un mail a [email protected] y te contesto, te adjunto documentación.
¿Cómo obtienes ese nombre de usuario virtual? Yo no creo que necesites variables globales. Utilizas USER y luego si quieres el virtual.
Ya me contarás

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas