Oracle Sql触发器无法正常工作

时间:2018-05-05 11:07:46

标签: sql oracle plsql database-trigger

我有一个非常简单的触发器,它会在将新行插入users表时打印出用户名和日期。但是在成功编译之后,触发器没有被触发(dbms窗口中没有输出)。所以,我简化了我的代码,直到我得到它:

CREATE OR REPLACE TRIGGER logger
AFTER INSERT ON USERS
BEGIN
   DBMS_OUTPUT.PUT_LINE('User added with name:');
END;

如果我在SQL工作表中运行代码(从BEGIN到END),我可以看到输出,但是当我尝试使用触发器时却看不到。问题在哪里?

1 个答案:

答案 0 :(得分:1)

有两个选项,一个是触发器没有触发,另一个是触发器,但你没有看到输出。

  1. 假设您正在使用sqlplus等控制台程序,请确保在插入行之前执行SET SERVEROUTPUT ON
  2. 如果不能解决问题,请确保触发器正在触发。尝试创建一个简单的表:

    CREATE TABLE logtable(msg VARCHAR2(30 CHAR));

  3. 接下来,将其添加到您的触发器

    INSERT INTO logtable( msg ) VALUES ( 'trigger fired' );
    

    然后,再次尝试插入。