我是PL / SQL的新生,并且有这样的问题:
我想创建一个触发器,该触发器显示电话号码已更新的人的姓氏
我做了什么
Set SERVEROUTPUT ON
Create or replace trigger inform
after update of scontact_number on SUPLIER
for each row
DECLARE
x SUPLIER.ssurname%TYPE;
BEGIN
Select SSURNAME
into x
from SUPLIER;
dbms_output.put_line('New tel number for ' || x);
END;
/
UPDATE SUPLIER
SET SCONTACT_NUMBER = 6765092654
WHERE ID_SUPLIER = 1;
触发器已编译,但是当我尝试触发它时,出现错误“表正在变异”
我该如何解决?我将不胜感激
您不需要触发器中的表引用。只需使用:new
:
Create or replace trigger inform
after update of scontact_number on SUPLIER
for each row
DECLARE
x SUPLIER.ssurname%TYPE;
BEGIN
Select :new.SSURNAME
into x
from dual;
dbms_output.put_line('New tel number for ' || x);
END;
/
或者,更简单地说:
BEGIN
dbms_output.put_line('New tel number for ' || :new.SSURNAME);
END;
并且不需要任何变量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句