Join 另一个04079:触发器规范无效
触发器创建的语法在我看来是正确的,但我很难找到引发此错误的原因。 此触发器的目的是在源表添加了条目后填充两个不同的表。tasks表获得添加的行,然后CADP_导入和CADP_导出表仅获得从tasks表中相应列填充的非空列。同样的情况也发生在狂欢桌上。varcdesc变量位于两个连接点之外的表上。这就是定义要复制到哪一组外部表的内容Join 另一个04079:触发器规范无效,join,plsql,triggers,insert,multiple-tables,Join,Plsql,Triggers,Insert,Multiple Tables,触发器创建的语法在我看来是正确的,但我很难找到引发此错误的原因。 此触发器的目的是在源表添加了条目后填充两个不同的表。tasks表获得添加的行,然后CADP_导入和CADP_导出表仅获得从tasks表中相应列填充的非空列。同样的情况也发生在狂欢桌上。varcdesc变量位于两个连接点之外的表上。这就是定义要复制到哪一组外部表的内容 CREATE OR REPLACE TRIGGER UPDATEEXTERNAL AFTER UPDATE ON TASKS REFERENCE new
CREATE OR REPLACE TRIGGER UPDATEEXTERNAL
AFTER UPDATE
ON TASKS
REFERENCE new as new old as old
FOR EACH ROW
WHEN (:new.status like 'CODE VERBATIM #%')
DECLARE
vareid varchar2(50);
varcdesc varchar2(50);
BEGIN
vareid := externalid;
select c.description into varcdesc from configurations c, jobs j, tasks t
where t.jobid = j.id
and j.configurationid = c.id;
IF varcdesc = 'CADP AE and MH Convention'
OR varcdesc = 'CADP CM Convention' THEN
INSERT ALL
INTO IATINTEGRATION.CADP_IMPORT
(EXTERNALID,TERM,FROMSYS,PROT,TYPE,DATASET,VARNAME,BATCH,PNO)
VALUES
(vareid,t.verbatim,t.REF1,t.REF2,t.REF3,t.REF4,t.REF5,t.REF6,t.REF7)
INTO IATEINTEGRATION.CADP_EXPORT
(EXTERNALID,VERBATIM,FROMSYS,PROT,TYPE,DATASET,VARNAME,BATCH,PNO)
VALUES
(vareid,t.verbatim,t.REF1,t.REF2,t.REF3,t.REF4,t.REF5,t.REF6,t.REF7);
ELSE IF varcdesc = 'RAVE AE and MH Convention'
OR varcdesc = 'RAVE CM Convention' THEN
INSERT ALL
INTO IATINTEGRATION.RAVE_IMPORT
(EXTERNALID,VERBATIM_TERM,STUDY_ID)
VALUES
(vareid,t.verbatim,t.REF1)
INTO IATINTEGRATION.RAVE_EXPORT
(EXTERNALID,VERBATIM_TERM,STUDY_ID)
VALUES
(vareid,t.verbatim,t.REF1);
END IF;
END;
试试这个:
CREATE OR REPLACE TRIGGER UPDATEEXTERNAL
AFTER UPDATE
ON TASKS
REFERENCE new as t old as old
FOR EACH ROW
WHEN (:new.status like 'CODE VERBATIM #%')
DECLARE
vareid varchar2(50);
varcdesc varchar2(50);
BEGIN
vareid := externalid;
select c.description into varcdesc from configurations c, jobs j, tasks tsk
where tsk.jobid = j.id
and j.configurationid = c.id;
IF varcdesc = 'CADP AE and MH Convention'
OR varcdesc = 'CADP CM Convention' THEN
INSERT ALL
INTO IATINTEGRATION.CADP_IMPORT
(EXTERNALID,TERM,FROMSYS,PROT,TYPE,DATASET,VARNAME,BATCH,PNO)
VALUES
(vareid,t.verbatim,t.REF1,t.REF2,t.REF3,t.REF4,t.REF5,t.REF6,t.REF7)
INTO IATEINTEGRATION.CADP_EXPORT
(EXTERNALID,VERBATIM,FROMSYS,PROT,TYPE,DATASET,VARNAME,BATCH,PNO)
VALUES
(vareid,t.verbatim,t.REF1,t.REF2,t.REF3,t.REF4,t.REF5,t.REF6,t.REF7);
ELSE IF varcdesc = 'RAVE AE and MH Convention'
OR varcdesc = 'RAVE CM Convention' THEN
INSERT ALL
INTO IATINTEGRATION.RAVE_IMPORT
(EXTERNALID,VERBATIM_TERM,STUDY_ID)
VALUES
(vareid,t.verbatim,t.REF1)
INTO IATINTEGRATION.RAVE_EXPORT
(EXTERNALID,VERBATIM_TERM,STUDY_ID)
VALUES
(vareid,t.verbatim,t.REF1);
END IF;
END;
为什么在插入中引用
t.
列?这仅适用于INSERT。。。选择
,而不是为插入。。。值
1。