Oracle Database 文字列を1文字単位で置換する

Oracle Database 文字列を1文字単位で置換する

Oracle Databaseで、文字列を1文字単位で置換する手順を記述してます。「TRANSLATE」を使用します。ここでは、実際に実行した結果を画像で掲載してます。

環境

  • OS windows11 home
  • Oracle Database 21c Express Edition
  • SQL Developer 21.2.1.204

手順

文字列を1文字単位で置換するには、「TRANSLATE」を使用します。

TRANSLATE( 文字列,置換対象文字列,置換する文字列 )

実際に、置換してみます。
※「DUAL」テーブルはダミーとして使用できるテーブルです。

SELECT 
TRANSLATE('aaa', 'a', 'A'),
TRANSLATE('aba', 'a', 'A'),
TRANSLATE('abcba', 'b', 'B')
FROM DUAL;

実行結果

置換されていることが確認できます。

存在しない文字を指定すると、何も行われません。

SELECT 
TRANSLATE('aaa', 'c', 'A')
FROM DUAL;

実行結果

サロゲートペア文字

サロゲートペア文字を使用しても動作は同じです。

SELECT 
TRANSLATE('😇😈', '😈', '😇')
FROM DUAL;

実行結果