第 3/16 行错误:ORA-00942:表或视图不存在

问题描述 投票:0回答:1

每当我尝试运行此触发器时,当我尝试为员工分配工作计划时,以及当我从详细信息表中的主表将工作计划分配给该员工时,它应该为我生成工作计划详细信息时,我都会收到此错误基于工作计划页面中的工作计划 ID 的表格,但我不知道该怎么做,我需要帮助 触发:

CREATE OR REPLACE TRIGGER TRG_INSERT_EMPLOYEE_WORK_SCHEDULE
AFTER INSERT ON EMPLOYEE_WORK_SCHEDULE_testtt
FOR EACH ROW
DECLARE
    v_new_id NUMBER;
BEGIN
        
    -- Generate a new unique ID for each detail record,
    SELECT NVL(MAX(ID), 0) + 1 INTO v_new_id FROM EMPLOYEE_WORK_SCHEDULE_DETAIL_testtt;
    
    -- Inserting into detail table, modify the columns and values 
    INSERT INTO EMPLOYEE_WORK_SCHEDULE_DETAIL_testtt (ID, ...other columns...) 
    VALUES (v_new_id, ...other values...);
    
    -- You can add more logic if needed
END;
/

这是两个表的 DLL

主表:

  CREATE TABLE "EMPLOYEE_WORKING_SCHEDULE_testtt" 
   (    "ID" NUMBER, 
    "EMPLOYEE_ID" NUMBER NOT NULL ENABLE, 
    "WORK_SCHEDULE_ID" NUMBER NOT NULL ENABLE, 
    "ASSIGNMENT_DATE" DATE NOT NULL ENABLE, 
     PRIMARY KEY ("ID")
  USING INDEX  ENABLE
   ) ;

  ALTER TABLE "EMPLOYEE_WORKING_SCHEDULE_testtt" ADD CONSTRAINT "FK_EWS_EMPLOYEE" FOREIGN KEY ("EMPLOYEE_ID")
      REFERENCES "EMPLOYEES" ("EMPLOYEE_ID") ENABLE;
  ALTER TABLE "EMPLOYEE_WORKING_SCHEDULE_testtt" ADD CONSTRAINT "FK_EWS_WORK_SCHEDULE" FOREIGN KEY ("WORK_SCHEDULE_ID")
      REFERENCES "WORK_SCHEDULE_MASTER" ("ID") ENABLE;

  CREATE OR REPLACE EDITIONABLE TRIGGER "EMPLOYEE_WORKING_SCHEDULE_TESTTT_T" 
after
insert or update or delete on "EMPLOYEE_WORKING_SCHEDULE_testtt"
for each row
begin
    null;
end;
/
ALTER TRIGGER "EMPLOYEE_WORKING_SCHEDULE_TESTTT_T" ENABLE;

详情表:

  CREATE TABLE "EMPLOYEE_WORKING_SCHEDULE_DETAIL_testtt" 
   (    "ID" NUMBER, 
    "EMPLOYEE_WORKING_SCHEDULE_ID" NUMBER NOT NULL ENABLE, 
    "DAY" NUMBER NOT NULL ENABLE, 
    "DAY_MODEL" VARCHAR2(50 CHAR) NOT NULL ENABLE, 
    "SHIFT_DEFINITION_ID" NUMBER NOT NULL ENABLE, 
     PRIMARY KEY ("ID")
  USING INDEX  ENABLE
   ) ;

  ALTER TABLE "EMPLOYEE_WORKING_SCHEDULE_DETAIL_testtt" ADD CONSTRAINT "FK_EWSD_EWS" FOREIGN KEY ("EMPLOYEE_WORKING_SCHEDULE_ID")
      REFERENCES "EMPLOYEE_WORKING_SCHEDULE_testtt" ("ID") ENABLE;
  ALTER TABLE "EMPLOYEE_WORKING_SCHEDULE_DETAIL_testtt" ADD CONSTRAINT "FK_EWSD_SHIFT_DEFINITION" FOREIGN KEY ("SHIFT_DEFINITION_ID")
      REFERENCES "SHIFT_DEFINITIONS" ("ID") ENABLE;

尝试运行但行不通

oracle oracle-apex oracle-apex-5.1
1个回答
0
投票

当您决定将表和列名称括在双引号中时,现在您必须这样做每次引用这些名称时,匹配字母大小写。

在触发器中,您没有这样做,所以它失败了,因为具有该名称的表实际上不存在 - 在数据字典中,其(表的)名称以混合大小写形式存储。默认情况下,如果不使用双引号,所有标识符都以大写形式存储,但 Oracle 允许您以任何您想要的方式引用它们。

我建议你

    删除表格
  • 删除所有双引号
  • 重新创建表
  • 创建触发器
© www.soinside.com 2019 - 2024. All rights reserved.