try again:create or replace function FN_NAME_REPLACE(in_name varchar2)
  return varchar2 is
  v_name varchar2(2000);
  cursor cur_name is select code,name from info_public where table_name = 'Name_Standard';
  BEGIN
   -- v_name_out:=replace(in_name,'','');
   for c1 in cur_name
   loop
     v_name:=replace(in_name,c1.code,c1.name);     
   end loop;
   return v_name;
  END;
end FN_NAME_REPLACE;

解决方案 »

  1.   

    对,我就是想用游标历遍info_public 这个表,每个都执行这个replace,
    我的info_public表结构如下:
    code        name
    建行      中国人民建设银行
    中行      中国人民银行我想写个函数,用name替代成code,但是
    select fn_name_replace('中行') from dual;
    得出“中行”HELP
      

  2.   

    create or replace function FN_NAME_REPLACE(in_name varchar2)
      return varchar2 is
    begin
    declare
      v_name varchar2(2000);
      cursor cur_name is select code,name from info_public where table_name = 'Name_Standard';
      BEGIN
       v_name:=in_name;
       for c1 in cur_name
       loop    
         v_name:=replace(v_name,c1.code,c1.name);    
       end loop;
       return v_name;
      END;
    end FN_NAME_REPLACE;
    终于弄好了,
    谢谢 dinya2003(OK)