我正在尝试创建一个触发器,该触发器在触发时将数据插入到具有USER和SYSDATE数据的另一个表中。脚本但未从TRIGGER插入任何数据。

我正在运行Oracle Server。

 SET SERVEROUTPUT ON;

  CREATE TABLE dept1
 ( DEPTNO NUMBER(3) PRIMARY KEY,
  DNAME VARCHAR2(20),
  LOC VARCHAR2(20)
 );

 CREATE TABLE dept1_shadow
 ( DEPTNO NUMBER(3) PRIMARY KEY,
  DNAME VARCHAR2(20),
  LOC VARCHAR2(20),
  USER_ VARCHAR2(32),
  MODTIME CHAR(17)
  );

 INSERT INTO dept1 VALUES (10, 'ACCOUNTING', 'NEW YORK');
 INSERT INTO dept1 VALUES (20, 'RESEARCH',   'DALLAS');
 INSERT INTO dept1 VALUES (30, 'SALES',      'CHICAGO');
 INSERT INTO dept1  VALUES (40, 'OPERATIONS', 'WASHINGTON (D.C.)');
 INSERT INTO dept1  VALUES (50, 'MARKETING', 'BOSTON');


CREATE OR REPLACE TRIGGER row_dept1_trigger
 AFTER INSERT ON dept1

 FOR EACH ROW

 DECLARE

 MODTIME CHAR(17);
 USER_ VARCHAR2(32);

 BEGIN

 MODTIME := TO_CHAR(SYSDATE);
 USER_ := User;

 IF INSERTING THEN
 INSERT INTO dept1_shadow (deptno, dname,loc, user_, modtime)
 VALUES (:new.deptno, :new.dname,:new.loc,user_, modtime);
 END IF;

 END;
 /

我没有任何错误。

最佳答案

创建触发器后,移动insert语句。

关于sql - 触发编译但不插入行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57531952/

10-16 16:37