簡體   English   中英

PL/SQL:什么是錯誤:ORA-04082:表級觸發器中不允許新或舊引用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM