Variables glovales en Oracle 9i

Como se puede usar una variale global en un trigger
He orivado siguiente 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
Lo que estas intentando en verdad no se puede,
Pero no todo es malo!
Lo de la variable global no te funciona
Porque me imagino que esa variable global que indicas la usas en forms pero no hay manera de que le digas a la base de datos que tome una variable global que esta en un formulario
Y por lo que pude analizar quieres dejar una huella como de auditoria al cambiar el código del usuario que lo hace!
Para ello te sugiero lo siguiente!
Si es a nivel de forms puedes guardar en un campo usando el trigger del bloque pre inser o pre update dependiendo el caso y en el trigger de base de datos cambias el valor del new por el del campo de la tabla o puedes usar el old. por el new. Indicándole que el valor que anteriormemnete estaba guardado pasara a ser el nuevo valor insertado a través del bloque!
Cualquier duda
Espero que escribas!
BYE!
Y si es a nivel de sql lo que quieres hacer hay que aplicar otro procedimiento!
Suerte!

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