簡體   English   中英

Oracle SQL觸發器不起作用

[英]Oracle Sql trigger not working

我有一個非常簡單的觸發器,當在用戶表中插入新行時,它會打印出用戶名和日期。 但是在成功編譯之后,觸發器沒有被觸發(dbms窗口中沒有輸出)。 因此,我簡化了代碼,直到得到:

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

如果我運行SQL工作表中的代碼(從BEGIN到END),則可以看到輸出,但是在嘗試使用觸發器時看不到輸出。 問題出在哪兒?

有兩種選擇,一種是觸發器不觸發,另一種是觸發器,但是您沒有看到輸出。

  1. 假設您正在使用sqlplus之類的控制台程序,請確保在插入行之前先執行SET SERVEROUTPUT ON
  2. 如果那不能解決問題,請確保觸發觸發器。 嘗試創建一個簡單的表:

    創建表日志表(msg VARCHAR2(30 CHAR));

接下來,將其添加到觸發器中

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

然后,再次嘗試插入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM