[英]PL/SQL: What is ERROR: ORA-04082: NEW or OLD references not allowed in table level triggers
您好,我在執行 pl/sql 觸發器時遇到了一些問題。 我想做一個做“歷史”的觸發器。 我創建了一個表,使用以下代碼記錄觸發器的輸出:
create table control(
camp1 varchar2(255)
);
它還沒有工作,但我們很接近。 現在在用戶:7623856 的幫助下,當我執行此操作時,會出現在此處輸入圖像描述我在 SQL 開發人員和 oracle 11 工作
這是新代碼
create or replace trigger t_auditar_alta_empleat
after insert on empleats
for each row
begin
if :new.codi_dept is null then
insert into control values('Alta empleat amb codi' || :new.codi_emp);
else
insert into control values('Alta empleat amb codi' || :new.codi_emp || 'amb el codi de departament '|| new:codi_dept);
end if;
end;
並出現新的錯誤。
*LINE/COL 錯誤
5/3 PL/SQL:SQL 語句被忽略 5/109 PLS-00049:錯誤的綁定變量 'CODI_DEPT' 5/109 PL/SQL:ORA-00917:缺少逗號錯誤:comprobar log de compilador*
您幾乎就在那里,但按照定義,您當前有一個語句級觸發器,但您需要一個行級觸發器。 見這里。
create or replace trigger t_auditar_alta_empleat
after insert on empleats
for each row -- added
begin
if :new.codi_dept is null then
insert into control values('Alta empleat amb codi' || :new.codi_emp);
else
insert into control values('Alta empleat amb codi' || :new.codi_emp || 'amb el codi de departament '|| new:codi_dept);
end if;
end;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.