我在 SQL Plus 中创建了触发器而没有错误,但它不起作用

Posted

技术标签:

【中文标题】我在 SQL Plus 中创建了触发器而没有错误,但它不起作用【英文标题】:I have created trigger in SQL Plus without error but it doesn't work 【发布时间】:2021-12-16 10:32:54 【问题描述】:

我在 SQL Plus 中创建了以下触发器,以在表有更新时显示旧电话号码和新电话号码。它在我创建时似乎有效,但是当我尝试按照行查看它是否有效时,什么也没有。我的错误在哪里,你能帮帮我吗?

`CREATE OR REPLACE TRIGGER update_trig
 AFTER UPDATE OF number ON traveler
 FOR EACH ROW
 BEGIN
 DBMS_OUTPUT.PUT_LINE('New: ' || :new.number);
 DBMS_OUTPUT.PUT_LINE('Old:  ' || :old.number);
 END;
 /  `

测试线: UPDATE traveler SET number = 0651458621 WHERE number = 0651458625;

【问题讨论】:

【参考方案1】:

显然,我应该在所有内容之前添加一行并说“SET SERVEROUTPUT ON”。这是运行 dbms 输出的命令

【讨论】:

以上是关于我在 SQL Plus 中创建了触发器而没有错误,但它不起作用的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 2008 触发器错误删除

如何通过批处理文件连接到 SQL Plus 来运行 SQL 查询

在 Oracle PL/SQL 中创建触发器时如何解决“编译错误成功”错误?

执行触发器时,精确获取返回的行数超过请求的行数 SQL*PLUS

为啥我在SQL数据库中创建触发器时,总是说对象名无效?

如何基于 Azure 数据工厂中创建的 Blob 执行触发器?