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; /
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;
/