我有一个带有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;
答案 0 :(得分:0)
为了能够更改:new
值,您必须使用“for each row”触发器:
CREATE OR REPLACE Trigger BEFOREINSERT_CHARGES
BEFORE INSERT
On AHAR_REPAIRORDER_CHARGES FOR EACH ROW