¿Cómo saber el esquema?

Hola,
ojala me puedan ayudar con esta pregunta:
Necesito para un trigger saber que usuario o desde que esquema se realizo un insert, update o delete, lo que tengo es lo siguiente:
create or replace TRIGGER TRI_AUD_SUCURSAL
BEFORE INSERT OR DELETE OR UPDATE ON SUCURSAL
for each row
BEGIN
  if inserting  then
    insert into log_sucursal
    values(:new.suc_cod,'I','usuario',sysdate);
    end if;
  if updating THEN
  insert into log_sucursal
    values(:new.suc_cod,'U','usuario',sysdate);
    end if;
  if deleting THEN
  insert into log_sucursal
    values(:new.suc_cod,'D','usuario',sysdate);
    end if;
END;
Donde dice "usuario" debería ir el usuario del esquema que hizo alguna de los eventos consultados.
De antemano muchas gracias

1 respuesta

Respuesta
1
Prueba con la función
sys_context('USERENV','CURRENT_SCHEMA').
puedes volcar el valor a una variable con un select funcion_sys into variable from dual
Funciono perfectamente,
muchas gracias, a quien le sirva el trigger quedo así:
create or replace
TRIGGER TRI_AUD_SUCURSAL
BEFORE INSERT OR DELETE OR UPDATE ON SUCURSAL
for each row
declare
usuario  VARCHAR2(50);
BEGIN
  SELECT sys_context('USERENV', 'CURRENT_SCHEMA') into usuario FROM dual;
  if inserting  then
    insert into log_sucursal
    values(:new.suc_cod,'I',usuario,sysdate);
    end if;
  if updating THEN
  insert into log_sucursal
    values(:new.suc_cod,'U',usuario,sysdate);
    end if;
  if deleting THEN
  insert into log_sucursal
    values(:new.suc_cod,'D',usuario,sysdate);
    end if;
END;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas