是要实现什么呢?使用ASCII码转换

解决方案 »

  1.   

    create or replace procedure p_fulltohalf(instr in varchar2,outstr out varchar2) is
      v_i integer;
      begin
       v_i:=1;
       outstr:='';
       while v_i<=length(instr) loop
         if ascii(substr(instr,v_i,1))>41856 and ascii(substr(instr,v_i,1)) < 41856+128 then
            outstr:=outstr|| chr(ascii(substr(instr,v_i,1))-41856);
         else
            outstr:=outstr|| substr(instr,v_i,1);
         end if;
         v_i:=v_i+1;
       end loop;
     
    end p_fulltohalf;
    declare
     str varchar2(110);
     begin
       p_fulltohalf('夺夺ddfdfwfew((dfdfdf0$2d#!@@sdf)9',str);
       dbms_output.put_line(str);
     end;
     /