显示使用触发器更新的记录

8488483

我是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; 

触发器已编译,但是当我尝试触发它时,出现错误“表正在变异”

我该如何解决?我将不胜感激

戈登·利诺夫(Gordon Linoff)

您不需要触发器中的表引用。只需使用: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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章