0

我有一个带有 MasterDetail 表单的 Oracle 顶级应用程序。我需要为表单的详细信息部分做一个 BeforeInsert 触发器。我需要用另一个表(AHAR_PARTSLABOR)中的数据填充 BEFOREINSERT_CHARGES 的字段这是我到目前为止所拥有的,但它一直给我一个消息错误:

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

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;
4

1 回答 1

0

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

CREATE OR REPLACE Trigger BEFOREINSERT_CHARGES
BEFORE INSERT
On AHAR_REPAIRORDER_CHARGES FOR EACH ROW
于 2016-05-25T08:36:52.007 回答