我有一个非常简单的触发器,它会在将新行插入users表时打印出用户名和日期。但是在成功编译之后,触发器没有被触发(dbms窗口中没有输出)。所以,我简化了我的代码,直到我得到它:
CREATE OR REPLACE TRIGGER logger
AFTER INSERT ON USERS
BEGIN
DBMS_OUTPUT.PUT_LINE('User added with name:');
END;
如果我在SQL工作表中运行代码(从BEGIN到END),我可以看到输出,但是当我尝试使用触发器时却看不到。问题在哪里?
答案 0 :(得分:1)
有两个选项,一个是触发器没有触发,另一个是触发器,但你没有看到输出。
SET SERVEROUTPUT ON
。 如果不能解决问题,请确保触发器正在触发。尝试创建一个简单的表:
CREATE TABLE logtable(msg VARCHAR2(30 CHAR));
接下来,将其添加到您的触发器
INSERT INTO logtable( msg ) VALUES ( 'trigger fired' );
然后,再次尝试插入。