2013-05-08 54 views
0

我手上有以下信息:触发:蹊跷的代码

The EMP table is as follows: 

EMPNO , ENAME, JOB, MGR, HIREDATE, SAL,COMM,DEPTNO 


Here is the DEPT table: 

DEPTNO, DNAME, LOC 
基于以下问题

创建一个表来记录员工的终端。包括empno,emp名称,雇用日期,终止日期以及oracle用户的名字,这些用户将终止雇员。

我创建了下表中的Oracle 11g,SQL加上如下:

CREATE TABLE employee_terminations_log(
     empno number(4), 
     emp_name char(8), 
     datehired date, 
     dateterminated date, 
     dbuser char(8)); 

现在,基于以下问题:

创建的表emp触发器来插入相关信息输入员工终止日志。每次删除员工时都必须执行触发器。

我写的代码,触发如下:

create or replace trigger emp_termination_trigger 
after delete of empno on emp 
for each row 
begin 
     insert into employee_termination-log 
     values(:old.empno,:old.emp_name,:old.hiredate,sysdate,user); 
end; 

但我发现了以下错误:

8/
after delete of empno on emp 
      * 
ERROR at line 2: 
ORA-04073: column list not valid for this trigger type 

谁能告诉我什么在上面的代码是错误的触发?基本上我有 删除整个员工的行,因此我已经在上面的代码中使用了 以下语句。

删除empno后emp

请让我知道什么是错的。

感谢

回答

0

试一下这个

create or replace trigger emp_termination_trigger 
after delete on emp 
for each row 
begin 
     insert into employee_termination_log 
     values(:old.empno,:old.emp_name,:old.hiredate,sysdate,user); 
end; 

你还与insert into线

+0

我单独回答。请检查。谢谢 ! – Tan 2013-05-08 01:22:07

0

好像又是一个错字拼写错误,应employee_terminations_log:

create or replace trigger emp_termination_trigger 
after delete on emp 
for each row 
begin 
     insert into employee_terminations_log 
     values(:old.empno,:old.emp_name,:old.hiredate,sysdate,user); 
end; 
+0

是的,我纠正了之前你在我的帖子中提到 – Tan 2013-05-08 01:50:13