oracle的触发器中如何调用有参数的存储过程!在SQL SERVER中用exec 存储过程名,参数1,参数2,……来调用。
在oracle中该怎么调用?

解决方案 »

  1.   

    procedure create_ri_id(ri_id out df_user_meter_ri.ri_id%type) is
      begin
        select seq_ri_id.nextval into ri_id from dual;
        ri_id := to_char(sysdate,'yyyymmdd')||trim(to_char(to_number(ri_id),'0000000'));
      end create_ri_id;
    create or replace trigger tri_fff_biud
      before insert or update or delete on df_dic_area
      for each row
    declare
     
      ls_ri_id df_user_meter_ri.ri_id%type;
    begin
      case
        when updating then
          create_ri_id(ls_ri_id); ---调用存储过程
          insert into df_dic_area_ri
            (RI_ID,
             MODIFY_IP,
             MODIFY_MAN,
             MODIFY_TIME)
          values
            (ls_ri_id,
             :OLD.MODIFY_IP,
             :OLD.MODIFY_MAN,
             sysdate);
        
      end case;
    end tri_ff_biud;
      

  2.   

    --和存储过程中调用其他的存储过程的方法是一样的,触发器只是一种"特殊"的存储过程。
    procedure_name(par1,par2,...);