为什么我在尝试编译此TRIGGER时返回INVALID标识符?

时间:2018-02-21 21:20:07

标签: oracle plsql database-trigger

所以我试图编译这个触发器,打印一些行作为输出(声明变量,因为我将在稍后使用这些变量构建到此触发器上)。在同一个数据库中存在一个现有的触发器,它使用不同的表传递相同的数据,但是我的触发器似乎抛出错误,说“&new; .PROCESSED”是一个无效的标识符&#39 ;。我究竟做错了什么?我可能只是不知道我的代码中到底发生了什么......(提前感谢!)value_value_id_se和cALCULATION_VALUE_CALCULATI329都是系统中的函数......

create or replace TRIGGER CAL_VAL
    AFTER INSERT
    ON XML_HOURS_LOAD
    REFERENCING NEW AS NEW OLD AS OLD
    FOR EACH ROW
    WHEN (
    NEW.processed = 'N'
          )
DECLARE 
    Value_ID Number;
    pValue_ID Number;
    pCalculation_ID NUMBER;
    Calculation_ID Number;
    Calculation_Value_ID Number;
    p_Entity_Address_ID Varchar2(50);
    New_Value_ID Number;
    New_Calculation_ID Number;
    New_Calculation_Value_ID Number;

BEGIN

    Value_ID := value_value_id_seq.NEXTVAL;
    New_Value_ID := Value_id ;
    Calculation_Value_ID:=CALCULATION_VALUE_CALCULATI329.NEXTVAL;
    calculation_id := Calculation_Calculation_ID_SEQ.NEXTVAL;
    p_Entity_Address_ID := :New.EIA_ID_TX;

    DBMS_OUTPUT.PUT_LINE(Get_energy_product_id(:NEW.Product_Name_Cd));
    DBMS_OUTPUT.PUT_LINE(Get_Data_Source_Id(:NEW.Data_Source_Tx));
    DBMS_OUTPUT.PUT_LINE(Get_Supply_Type_Id(:NEW.Supply_Type_Tx));
    DBMS_OUTPUT.PUT_LINE(Get_State_CD(Get_entity_Id(p_Entity_Address_ID)));     
    DBMS_OUTPUT.PUT_LINE(Get_Entity_Address_ID(Get_Entity_ID(p_Entity_Address_ID)));
    DBMS_OUTPUT.PUT_LINE('Value_ID' || Value_ID);
END;

0 个答案:

没有答案