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

SQL Trigger error (ORA-00942: table or view does not exist)

我创建了这个 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

谁能帮帮我?

inserted 是 SQL 服务器的一部分。我想你想要:

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 查询。检查调用触发器的用户是否有权从 "inserted" table.

执行 select

https://www.tekstream.com/resource-center/ora-00942-table-or-view-does-not-exist/

Ora-00942 表示您正在尝试执行引用 table 或不存在的视图的 SQL 语句。 “table 或视图不存在”错误有多种可能的原因,包括:

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