ORACLE SQL リファレンス(逆引き)

ORACLE SQL リファレンス

Web oracle.se-free.com
全角カナの半角変換
スポンサード リンク

全角カナを半角カナに変換するには、以下のように独自に関数を作りこむ必要があります。

全角カナを半角カナに変換する関数(ストアドファンクション)

create or replace function zen2han (zen_str in varchar2) return varchar2 as
han_str varchar2(32767);

begin

han_str := zen_str;
if instrb(han_str,'゚') > 0 or instrb(han_str,'゙') > 0 then

 han_str := replace(han_str,'ガ','ガ');
 han_str := replace(han_str,'ギ','ギ');
 han_str := replace(han_str,'グ','グ');
 han_str := replace(han_str,'ゲ','ゲ');
 han_str := replace(han_str,'ゴ','ゴ');

 han_str := replace(han_str,'ザ','ザ');
 han_str := replace(han_str,'ジ','ジ');
 han_str := replace(han_str,'ズ','ズ');
 han_str := replace(han_str,'ゼ','ゼ');
 han_str := replace(han_str,'ゾ','ゾ');

 han_str := replace(han_str,'ダ','ダ');
 han_str := replace(han_str,'ヂ','ヂ');
 han_str := replace(han_str,'ヅ','ヅ');
 han_str := replace(han_str,'デ','デ');
 han_str := replace(han_str,'ド','ド');

 han_str := replace(han_str,'バ','バ');
 han_str := replace(han_str,'ビ','ビ');
 han_str := replace(han_str,'ブ','ブ');
 han_str := replace(han_str,'ベ','ベ');
 han_str := replace(han_str,'ボ','ボ')
;
 han_str := replace(han_str,'パ','パ');
 han_str := replace(han_str,'ピ','ピ');
 han_str := replace(han_str,'プ','プ');
 han_str := replace(han_str,'ペ','ペ');
 han_str := replace(han_str,'ポ','ポ') ;

end if;

return translate(han_str,
 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョッー',
 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョッー');

end zen2han;



例1) 全角カナから半角カナに変換する
select
  zen2han('アイウエオガギグゲゴ')
 from dual

 結果は、「アイウエオガギグゲゴ」が返されます。


スポンサード リンク


文字列を連結する(||、CONCAT)
文字列を置換する(REPLACE、TRANSLATE)
文字列を正規表現を使用して置換する(REGEXP_REPLACE)
文字列の左右に指定した文字列を埋める(RPAD、LPAD)
文字列の一部を切り出す(SUBSTR、SUBSTRB)
文字列の一部を正規表現を使用して切り出す(REGEXP_SUBSTR)
文字列の位置を取得する(INSTR)
文字列の位置を正規表現を使って取得する(REGEXP_INSTR)
文字列のサイズを取得する(LENGTH、LENGTHB)
文字列の空白を削除する(TRIM、RTRIM、LTRIM)
数値を文字列に変換する( TO_CHAR )
CLOBをVARCAHR2に変換する( TO_CHAR )
英数字の半角文字/全角文字変換(TO_MULUTI_BYTE、TO_SINGLE_BYTE)
全角カナの半角変換
半角カナの全角変換
英字の大文字/小文字変換(LOWER、UPPER)
英文字列の先頭文字の大文字変換(INITCAP)
NULL文字列の変換(NVL)
NULL文字列の変換2( NVL2 )
文字コードを変換する(CONVERT)

SQL(DML2) へ
忘れっぽいエンジニアのオラクルSQLリファレンス TOPへ