我的表定义如下所示:
我创建了一个视图:
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: invalid trigger specification
04079. 00000 - “invalid trigger specification”
*原因: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:表或视图不存在
我在用:
- 甲骨文OracleXE112
- sqldeveloper-18.2.0.183.1748
错误“表或视图不存在”(在您第二次尝试时)是由
SELECT qid,question FROM inserted;
- 据我所知,您的问题中没有inserted
表。这张桌子/视图是你的吗?或者它是另一个用户的?希望这可以帮助。