I am not sure what’s going wrong. I just build this script to create the tables and trigger, insert some rows and make the trigger fire with an update statement. It all works fine for me.
I am running this script with F5 in Toad’s editor.
drop table PSOPRDEFN;
drop table psroleuser;
drop table PS_FZAP_AUDIT_LOGS;
create table PSOPRDEFN
(oprid varchar2(30),
oprdefndesc varchar2(30),
lastsignondttm varchar2(30),
lastupddttm varchar2(30),
lastupdoprid varchar2(30));
create table psroleuser
(rolename varchar2(30),
roleuser varchar2(30));
create table PS_FZAP_AUDIT_LOGS
(oprid varchar2(30),
oprdefndesc varchar2(30),
lastsignondttm varchar2(30),
reasondescr varchar2(30),
dbname varchar2(30),
lastupddttm varchar2(30),
lastupdoprid varchar2(30));
CREATE OR REPLACE TRIGGER z_LOGIN2
AFTER UPDATE OF lastsignondttm
ON PSOPRDEFN
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
BEGIN
INSERT INTO PS_FZAP_AUDIT_LOGS (oprid, oprdefndesc,lastsignondttm,
reasondescr,dbname,lastupddttm,lastupdoprid)
select distinct :new.oprid,:new.oprdefndesc,:new.lastsignondttm,‘reasondescr’,‘FSPDEVP’,:new.lastupddttm,:new.lastupdoprid
from psroleuser b
where b.roleuser = :new.oprid
and (b.rolename = ‘FAS Change Admin’ or b.rolename=‘PeopleSoft Administrator’);
END;
/
Insert into JDORLON.PSROLEUSER
(ROLENAME, ROLEUSER)
Values
(‘FAS Change Admin’, ‘1’);
Insert into PSOPRDEFN
(OPRID, OPRDEFNDESC, LASTSIGNONDTTM, LASTUPDDTTM, LASTUPDOPRID)
Values
(‘1’, ‘b’, ‘d’, ‘d’, ‘e’);
COMMIT;
update PSOPRDEFN set lastsignondttm = ‘x’ where oprid = ‘1’;
select * from PS_FZAP_AUDIT_LOGS;