Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle SQL触发器错误(ORA-00942:表或视图不存在)_Oracle_Plsql_Database Trigger - Fatal编程技术网

Oracle SQL触发器错误(ORA-00942:表或视图不存在)

Oracle SQL触发器错误(ORA-00942:表或视图不存在),oracle,plsql,database-trigger,Oracle,Plsql,Database Trigger,我创建此sql触发器: CREATE OR REPLACE TRIGGER create_event_from_task BEFORE INSERT ON llx_projet_task BEGIN INSERT INTO llx_actioncomm (priority, fulldayevent, location, label, fk_element, elementtype, fk_project, datep, datef, percentage, note) SELE

我创建此sql触发器:

CREATE OR REPLACE TRIGGER create_event_from_task BEFORE INSERT ON llx_projet_task
BEGIN
    INSERT INTO llx_actioncomm (priority, fulldayevent, location, label, fk_element, elementtype, fk_project, datep, datef, percentage, note)
    SELECT 0, 0, '', 'prova', id, 'project_task', fk_project, date_start, date_end, progress, description
    FROM inserted;
END;
/
但当我执行时,会说以下错误:

Errors: TRIGGER CREATE_EVENT_FROM_TASK
Line/Col: 2/2 PL/SQL: SQL Statement ignored
Line/Col: 4/7 PL/SQL: ORA-00942: table or view does not exist

有人能帮我吗?

插入的
是SQL Server的一部分。我想你想要:

BEGIN
    INSERT INTO llx_actioncomm (priority, fulldayevent, location, label, fk_element, elementtype, fk_project, datep, datef, percentage, note)
        SELECT 0, 0, '', 'prova', :new.id, 'project_task', 
               :new.fk_project, :new.date_start, :new.date_end, 
               :new.progress, :new.description
        FROM dual;
END;

我认为它之所以出现这个错误是因为触发器中的select查询。检查调用触发器的用户是否有权执行“插入”表中的select

Ora-00942表示您正试图执行引用不存在的表或视图的SQL语句。“表或视图不存在”错误可能有以下几种原因:

1) Referencing a table or view that does not exist
2) Using an unauthorized synonym
3) Using an expression of view where a table is required
4) Attempting to use a table without proper permission or privilege

除非您有一个名为插入的
表,否则Oracle没有内置的表。错误消息似乎很清楚。您是否检查过名为“inserted”的表与触发器位于同一架构中?如果存在“inserted”表,您可能应该向其授予
权限,以便触发器检测。假设您是SQL Server用户(如下所述),请小心使用触发器--Oracle和SQL Server对于触发器的行为有明显不同的机制。或者干脆
插入(…)值(…,:new.fk_项目,:new.date_开始,…)