执行插入触发前的错误

时间:2016-05-25 04:55:20

标签: oracle insert mod-plsql

我有一个带有MasterDetail表格的Oracle,apex应用程序。 我需要为表单的详细信息部分执行BeforeInsert Trigger。 我需要使用另一个表(AHAR_PARTSLABOR)中的数据填充BEFOREINSERT_CHARGES的字段 这是我到目前为止它一直给我一个消息错误:

  

ORA-04082:表级触发器中不允许使用新引用或旧引用。

CREATE OR REPLACE Trigger BEFOREINSERT_CHARGES
BEFORE INSERT
On AHAR_REPAIRORDER_CHARGES

--DECLARAR VARIABLES
     --T_CHARGES_TYPE IN CHAR(11);
     --T_CHARGES_PRICE IN NUMBER;
     --T_CHARGES_DISCOUNT IN NUMBER; 

    --VALIDAR QUE EL CHAR_CODE INGRESADO POR EL USUARIO EXISTA

BEGIN

--SELECT PARA PASAR LOS VALORES DE PARTSLABOR A CHARGES 

    SELECT (PARTLABOR_TYPE, PARTLABOR_PRICE, PARTLABOR_DISCOUNT)
    INTO (:NEW.CHARGES_TYPE, :NEW.CHARGES_PRICE, :NEW.HARGES_DISCOUNT)

    FROM AHAR_PARTSLABOR
    WHERE :NEW.CHARGE_CODE = PARTLABOR_ID;

END;

1 个答案:

答案 0 :(得分:0)

为了能够更改:new值,您必须使用“for each row”触发器:

CREATE OR REPLACE Trigger BEFOREINSERT_CHARGES
BEFORE INSERT
On AHAR_REPAIRORDER_CHARGES FOR EACH ROW