create trigger audit_trail01
after update or delete on cust_mstr
for each row
declare
open varchar2(8);
begin
if updating then
open := 'UPDATE';
elsif deleting then
open := 'Delete';
end if;
insert into audit_cust
( cust_no
, fname
, mname
, lname
, dob_inc
, occup
, pancopy
, fqrm60
, operation
, userid
, opdate )
values
( :old.cust_no
, :old.fname
, :old.mname
, :old.lname
, :old.dob_inc
, :old.occup
, :old.pancopy
, :old.fqrm6o
, open
, user
, sysdate );
end;
我已经写了上面的内容,但它显示了以下错误:
错误:
TRIGGER AUDIT_TRAIL01行/彩色:5/8
PLS-00103:预期以下其中一项时遇到符号“ =”:
模 绑定变量>继续当前的sql执行forall合并管道清除 json_exists json_value json_query json_object json_array
答案 0 :(得分:0)
OPEN
是保留关键字,您不能将其用于变量。将OPEN
更改为lv_OPEN。
有关PL / SQL的oracle保留字,请参考oracle文档。 https://docs.oracle.com/cd/B28359_01/appdev.111/b28370/reservewords.htm#LNPLS019
CREATE TRIGGER AUDIT_TRAIL01
AFTER UPDATE OR DELETE ON CUST_MSTR
FOR EACH ROW
DECLARE
lv_OPEN VARCHAR2(8);
BEGIN
IF UPDATING THEN
lv_OPEN := 'UPDATE';
ELSIF DELETING THEN
lv_OPEN := 'Delete';
END IF;
INSERT INTO AUDIT_CUST (CUST_NO,FNAME,MNAME,LNAME,DOB_INC,OCCUP,PANCOPY,FQRM60,OPERATION,USERID,OPDATE)
VALUES(:OLD.CUST_NO,:OLD.FNAME, :OLD.MNAME,:OLD.LNAME, :OLD.DOB_INC,:OLD.OCCUP ,:OLD.PANCOPY, :OLD.FQRM6O,lv_OPEN,USER,SYSDATE);
END;