一个类似的案例表明,有时会触发触发器并且 dbms_output.put_line stmts。其中不会立即在控制台上打印,而是在匿名块/过程中遵循另一个这样的 stmt。
为什么会这样?是因为Oracle客户端的版本吗?如果按顺序触发两个/三个这样的触发器怎么办?
服务器输出开启
写入 DBMS_OUTPUT 的文本会被缓冲,直到调用 DBMS_OUTPUT.GET_LINES 来检索缓冲数据。无论出于何种原因,您使用的工具都没有调用 DBMS_OUTPUT.GET_LINES 并显示数据。但是,如果您在触发器的输出之前看到后一个语句的输出,则表明创建该输出的 DBMS_OUTPUT.PUT_LINE 语句正在按该顺序调用。
关于触发器触发的问题,您需要通读 Oracle 数据库概念手册中关于触发器的部分。对于 11.1,可以在此处找到数据库概念手册。
分享和享受。