CREATE OR REPLACE TRIGGER "SCOTT"."TR_LN_SYS_USER_INS" BEFORE INSERT ON "SCOTT"."LN_SYS_USER" REFERENCING OLD AS "OLD" NEW AS "newvalue" FOR EACH ROW
begin
declare Error_Msg nvarchar2(255);
call Proc_Sys_User_Ins(:newvalue.Corp_ID,:newvalue.User_ID,:newvalue.Role_ID,Error_Msg);
end;
总是报错 ora-24344 成功,但出现编译错误本人刚学oracle,高手们帮我看下是什么问题

解决方案 »

  1.   


    CREATE OR REPLACE TRIGGER "SCOTT"."TR_LN_SYS_USER_INS" 
    BEFORE INSERT ON "SCOTT"."LN_SYS_USER" REFERENCING OLD AS "OLD" NEW AS "newvalue" FOR EACH ROW
    declare --申明变量在这里做
    Error_Msg nvarchar2(255);
    begin
        --调用另一个过程:不要call
        Proc_Sys_User_Ins(:newvalue.Corp_ID,:newvalue.User_ID,:newvalue.Role_ID,Error_Msg);
    end;
      

  2.   


    -------test it,good luck
    CREATE OR REPLACE TRIGGER SCOTT.TR_LN_SYS_USER_INS
      BEFORE INSERT ON SCOTT.LN_SYS_USER
      FOR EACH ROW
    declare
      Error_Msg nvarchar2(255);
    begin
      Proc_Sys_User_Ins(:new.Corp_ID, :new.User_ID, :new.Role_ID, Error_Msg);
    end;
      

  3.   

    CREATE OR REPLACE TRIGGER "SCOTT"."TR_LN_SYS_USER_INS" BEFORE INSERT ON "SCOTT"."LN_SYS_USER" REFERENCING OLD AS "OLD" NEW AS "newvalue" FOR EACH ROW
    begin
    declare Error_Msg nvarchar2(255);
     Proc_Sys_User_Ins(:newvalue.Corp_ID,:newvalue.User_ID,:newvalue.Role_ID,Error_Msg);
    end;去掉call