2013-05-08 80 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