Oracle-11g-R2

在視圖上創建插入觸發器

  • April 3, 2019

我的表定義如下所示:

在此處輸入圖像描述

我創建了一個視圖:

users_questions(qid,username,question)

我想在視圖上創建一個而不是觸發器,它將要在視圖上插入的數據放到表問題中。

我試過了:

CREATE OR REPLACE TRIGGER TRIGGER1
 INSTEAD OF INSERT ON USERS_QUESTIONS
 FOR EACH ROW AS
BEGIN
 INSERT INTO questions(qid,question)
   VALUES (:NEW.qid,:NEW.question);
END TRIGGER1;

它說的是:

錯誤報告 - ORA-04079:無效的觸發器規範

04079。00000 -“無效的觸發器規範”

*原因:create TRIGGER 語句無效。

*操作:檢查語句的語法是否正確。

這個也試過了。

CREATE OR REPLACE TRIGGER TRIGGER1 
INSTEAD OF INSERT ON USERS_QUESTIONS 
BEGIN
 INSERT INTO questions(qid,question)
     SELECT qid,question FROM inserted;
END;

錯誤:

錯誤(4,3):PL/SQL:忽略 SQL 語句錯誤(5,32):PL/SQL:

ORA-00942:表或視圖不存在

我在用:

  • 甲骨文甲骨文XE112
  • sqldeveloper-18.2.0.183.1748

錯誤“表格或視圖不存在”(在您第二次嘗試時)是由SELECT qid,question FROM inserted;- 據我所知,您的問題中沒有inserted表格。這張桌子/視圖是你的嗎?還是其他使用者的?

希望這可以幫助。

引用自:https://dba.stackexchange.com/questions/214049