/***************************************************************
* CVS : $Id$
* Module Name : U_kana2half
* Customer :
* Product :
* Description : 引数の文字列の全角カナを半角カナに変換する関数
* Original :
* Modification :
****************************************************************/
-- drop function kana2half(varchar);
CREATE FUNCTION kana2half(VARCHAR) RETURNS VARCHAR AS
'
declare
p1 alias for $1;
str varchar;
len int;
i int;
zenkakus varchar;
hankakus varchar;
begin
str := p1;
str := replace(str, ''ガ'', ''ガ'');
str := replace(str, ''ギ'', ''ギ'');
str := replace(str, ''グ'', ''グ'');
str := replace(str, ''ゲ'', ''ゲ'');
str := replace(str, ''ゴ'', ''ゴ'');
str := replace(str, ''ザ'', ''ザ'');
str := replace(str, ''ジ'', ''ジ'');
str := replace(str, ''ズ'', ''ズ'');
str := replace(str, ''ゼ'', ''ゼ'');
str := replace(str, ''ゾ'', ''ゾ'');
str := replace(str, ''ダ'', ''ダ'');
str := replace(str, ''ヂ'', ''ヂ'');
str := replace(str, ''ヅ'', ''ヅ'');
str := replace(str, ''デ'', ''デ'');
str := replace(str, ''ド'', ''ド'');
str := replace(str, ''バ'', ''バ'');
str := replace(str, ''ビ'', ''ビ'');
str := replace(str, ''ブ'', ''ブ'');
str := replace(str, ''ベ'', ''ベ'');
str := replace(str, ''ボ'', ''ボ'');
str := replace(str, ''パ'', ''パ'');
str := replace(str, ''ピ'', ''ピ'');
str := replace(str, ''プ'', ''プ'');
str := replace(str, ''ペ'', ''ペ'');
str := replace(str, ''ポ'', ''ポ'');
zenkakus := ''アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョ'';
hankakus := ''アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョ'';
len := length(zenkakus);
for i in 0 .. len loop
str := replace(str, substr(zenkakus, i, 1), substr(hankakus, i, 1));
end loop;
return str;
end;
'
LANGUAGE 'plpgsql'
;
最終更新:2008年11月16日 12:10