触发:代码有问题

时间:2013-05-08 01:01:06

标签: sql oracle triggers oracle11g

我有以下信息:

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 Plus中创建了以下表格,如下所示:

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

有人可以告诉我上面的触发代码有什么问题吗?基本上我有 删除整个员工行,为此我已经使用了 以上代码中的以下声明。

删除emp上的empno后

请让我知道什么是错的。

由于

2 个答案:

答案 0 :(得分: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

也存在拼写错误

答案 1 :(得分: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;