全角カナを半角に変換する

 
文書番号:20612




全角カナ半角に変換する関数です。

Oracleの関数には全角カナを半角に変換する関数はありません。
自分で関数を作成する必要があります。


半角カナを全角に変換する関数はこちらです。
半角カナを全角に変換する

【サンプル】

全角カナを半角に変換するファンクションのサンプル

-- ===========================================
--  全角カナ文字を半角に変換します。
-- ===========================================
CREATE OR REPLACE FUNCTION STRING_TO_HALF(
    IN_STR IN VARCHAR2
)
RETURN VARCHAR2
AS

result VARCHAR2(32767)

BEGIN

  --変換対照の文字列を取得
  result := IN_STR;


  --濁点や半濁点の文字は個別に変換する
  result := REPLACE(result,'ガ','ガ');
  result := REPLACE(result,'ギ','ギ');
  result := REPLACE(result,'グ','グ');
  result := REPLACE(result,'ゲ','ゲ');
  result := REPLACE(result,'ゴ','ゴ');
  
  result := REPLACE(result,'ザ','ザ');
  result := REPLACE(result,'ジ','ジ');
  result := REPLACE(result,'ズ','ズ');
  result := REPLACE(result,'ゼ','ゼ');
  result := REPLACE(result,'ゾ','ゾ');
  
  result := REPLACE(result,'ダ','ダ');
  result := REPLACE(result,'ヂ','ヂ');
  result := REPLACE(result,'ヅ','ヅ');
  result := REPLACE(result,'デ','デ');
  result := REPLACE(result,'ド','ド');
  
  result := REPLACE(result,'バ','バ');
  result := REPLACE(result,'ビ','ビ');
  result := REPLACE(result,'ブ','ブ');
  result := REPLACE(result,'ベ','ベ');
  result := REPLACE(result,'ボ','ボ');
  
  result := REPLACE(result,'パ','パ');
  result := REPLACE(result,'ピ','ピ');
  result := REPLACE(result,'プ','プ');
  result := REPLACE(result,'ペ','ペ');
  result := REPLACE(result,'ポ','ポ') ;

  --濁点、半濁点のない文字を置換
  RETURN TRANSLATE(result,'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョッー'
                         ,'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョッー');

END;