Oracle TRANSLATE 文字列を1文字ずつ置換する

文字列を置換するTRANSLATE

Oracleで文字列を置換するには「TRANSLATE」を使います。

同じ置換に「REPLACE」もありますが、微妙に違います。

OracleのREPLACE 文字列を置換する【SQL】

TRANSLATE(文字列, 置換前文字列, 置換後文字列)

  • 指定された文字列の中に存在する置換前文字列を置換後文字列で置換します
  • 置換は1文字毎に置換します

例1. TRANSLATEで文字列を置換するパターン

ここではTRANSLATEを使って「SATOU」の「S」→「K」に置換しました。文字列「SATOU」を「KATOU」に置換しました。

例2. TRANSLATEとREPLACEとの違い

ここでは「TRANSLATE」を使って文字列「ABC」の「A」→「X」、「C」→「Y」に置換し、「XBY」にしました。

「TANSLATE」と似た置換関数に「REPLACE」がありますが、機能はやや違います。

「REPLACE」は連続する文字列を置換するのに対し、「TRANSLATE」は1文字毎に置換します。

ここでは同じことを「REPLACE」でやっても「ABC」となりました。「REPLACE」は「AC」を「XY」に置換しようとしても、連続する「AC」という文字列がないため置換できないのです。

OracleのREPLACE 文字列を置換する【SQL】

例3. TRANSLATEで文字列を置換できないパターン

「ABC」には「E、F」が含まれないので「X、Y」には置換されませんでした。置換する対象がない場合はそのままの文字列が返ってきます。

「TRANSLATE」で文字列を置換するパターンを3つ取りあげました。

以上、Oracleで文字列を置換するTRANSLATEでした。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする