我需要使用RAISE_APPLICATION_ERROR(-20101,'某些功能数据库消息')向用户发送消息; 登录用户断开连接后使用触发器时。
create or replace TRIGGER "SYSTEM".LOGON_MENSAGEM_TRIGGER AFTER
LOGON ON DATABASE DECLARE mensagem varchar2(4000) ;
INSERIR VARCHAR2(4000);
msg_erro exception;
PRAGMA EXCEPTION_INIT(msg_erro, -20101);
BEGIN
IF USER in ( 'LTAFARELLO', 'ALEXANDRE','AUSUARIO', 'SIG_EMPLASA\ABARBOZA') THEN
FOR consulta IN (select id, owner, TABLE_NAME, DESCRIPTION, CREATED from DICIONARIO_SIGEMPLASA.DICIONARIO_SIGEMPLASA where ID not in (select distinct dicionario_id from DICIONARIO_SIGEMPLASA.USER_DISPLAY where USER_NAME=user )) LOOP
mensagem :=mensagem || 'Feição:' || consulta.owner || '.' || consulta.table_name || ' - Data de Criação:' || consulta.created || ' - Descrição: ' || consulta.DESCRIPTION || chr(10) || chr(13) ;
INSERT INTO DICIONARIO_SIGEMPLASA.USER_DISPLAY(USER_NAME,DICIONARIO_ID)VALUES( user,consulta.id );
INSERIR :=INSERIR || 'INSERT INTO DICIONARIO_SIGEMPLASA.USER_DISPLAY(USER_NAME,DICIONARIO_ID)VALUES('''|| user || ''',' ||consulta.id || ');';
END LOOP;
commit;
--system.SHOW_USER_MSG(user,mensagem);
RAISE_APPLICATION_ERROR(-20000,mensagem);
END IF;
end;