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

文字列を置換するTRANSLATE

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

同じ置換にREPLACEもあります。

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

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

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

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

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

例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で文字列を置換することができました。

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