使用工具写存储过程比较方便:
pl/sql developer
执行:
sqlplus里面:exec pro_name;
sql语句里面不能执行,pb里面应该有专门调用存储过程的控件吧

解决方案 »

  1.   

    直接写在数据库中啊CREATE OR REPLACE PROCEDURE Pr_test (
         v_unite_code in varchar2
    )
    AS
    v_temp number(10);
      sql_str varchar2(200);
      v_map varchar2(50);
      v_field varchar2(20);
      v_code varchar2(20);
      type cur is ref cursor;
      v_cur cur;
    BEGIN
         v_field :='REN';
         v_map := 'R20';
         v_code :='5D';
         sql_str := 'select maping_rule, field_value,field_catlog_code from v_fieldconversion where table_name ='''||v_field||''' and field_name = '''||v_map||''' and field_catalog = ''0.5''';
         open v_cur for sql_str;
         loop
             fetch v_cur into v_map, v_field, v_code;
             if v_cur%notfound then
                exit;
             end if;
         end loop;
         
         exception 
         when others then
               insert into pop.t_sum_error values(v_field,v_map,v_code,'1');
               commit;END;在pb中调用的话,excute pr_test('')
      

  2.   

    SQL*PLUS里面
    EXEC PRO_NAME();