|
create or replace function han2zen (han_str in varchar2) return varchar2 as
zen_str varchar2(32767);
begin
zen_str := han_str;
if instrb(zen_str,'゚') > 0 or instrb(zen_str,'゙') > 0 then
zen_str := replace(zen_str,'ガ','ガ');
zen_str := replace(zen_str,'ギ','ギ');
zen_str := replace(zen_str,'グ','グ');
zen_str := replace(zen_str,'ゲ','ゲ');
zen_str := replace(zen_str,'ゴ','ゴ');
zen_str := replace(zen_str,'ザ','ザ');
zen_str := replace(zen_str,'ジ','ジ');
zen_str := replace(zen_str,'ズ','ズ');
zen_str := replace(zen_str,'ゼ','ゼ');
zen_str := replace(zen_str,'ゾ','ゾ');
zen_str := replace(zen_str,'ダ','ダ');
zen_str := replace(zen_str,'ヂ','ヂ');
zen_str := replace(zen_str,'ヅ','ヅ');
zen_str := replace(zen_str,'デ','デ');
zen_str := replace(zen_str,'ド','ド');
zen_str := replace(zen_str,'バ','バ');
zen_str := replace(zen_str,'ビ','ビ');
zen_str := replace(zen_str,'ブ','ブ');
zen_str := replace(zen_str,'ベ','ベ');
zen_str := replace(zen_str,'ボ','ボ');
zen_str := replace(zen_str,'パ','パ');
zen_str := replace(zen_str,'ピ','ピ');
zen_str := replace(zen_str,'プ','プ');
zen_str := replace(zen_str,'ペ','ペ');
zen_str := replace(zen_str,'ポ','ポ');
end if;
return translate(zen_str,
'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョッー',
'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョッー');
end han2zen;
|