【发布时间】:2018-10-15 08:39:48
【问题描述】:
我在 SQL 中做了一个触发器,需要他在表中插入一个新行后写一个输出。请看示例:
CREATE OR REPLACE TRIGGER GAS_CODES AFTER
INSERT ON blablatable
FOR EACH ROW
BEGIN
insert into blabla2table (...,...,...,...)
values (:new...,...,...,..);
---output:
dbms_output.put_line('New row has been added.');
END;
/
当我编译触发器时,它会显示在脚本输出中,但如果我在表中添加新行,则什么都没有。
【问题讨论】:
-
编译触发器不会显示
dbms_output.put_line()的输出,因为代码在编译期间没有执行。当你编译它时,你究竟看到了什么?为了查看任何 dbms_output,您必须在使用dbms_output的任何语句之前运行set serveroutput on。您在运行您希望输出显示的插入之前是否这样做了? -
是的,我以前做过。
-
@Mira7 触发器通常不用于显示任何消息。触发器是在基表上发生任何 DML 操作时应该发生的事件。不知道为什么要在触发器中写
DBMS_OUT。 -
当你说 "there's nothing" 你是指
blablatable(插入目标)还是blabla2table(触发目标)? -
好吧,我的想象是,在添加行之后。触发器会将行复制到其他表中写入控制台内容(用户信息)。
标签: oracle plsql oracle-sqldeveloper database-trigger dbms-output