TRANSLATE
構文
目的
TRANSLATE
は、from_string
内のすべての文字をto_string
内の対応する文字に置換してexpr
を戻します。from_string
内に存在しないexpr
内の文字は置換されません。引数from_string
には、to_string
より多い文字を指定できます。この場合、from_string
の終わりにある余分な文字には、to_string
内に対応する文字がありません。これらの余分な文字がexpr
内にある場合、それらの文字は戻り値から削除されます。
from_string
内に1つの文字が複数回現れた場合は、最初の出現に対応するto_string
マッピングが使用されます。
戻り値からfrom_string
内のすべての文字を削除するために、to_string
に空の文字列を使用することはできません。Oracle Databaseは空の文字列をNULLと解析するため、このファンクションにNULLの引数がある場合、NULLが戻されます。from_string
内の文字をすべて削除するには、from_string
の先頭に別の文字を結合し、この文字をto_string
として指定します。たとえば、TRANSLATE
(expr
, 'x0123456789
', 'x
')では、すべての数字がexpr
から削除されます。
TRANSLATE
は、REPLACE
ファンクションに関連する機能を提供します。REPLACE
ファンクションでは、単一の文字列から別の単一の文字列への置換、および文字列の削除を実行できます。TRANSLATE
では、1回の操作で複数の単一文字を1対1で置き換えることができます。
このファンクションは、CLOB
データを直接的にサポートしていません。ただし、暗黙的なデータ変換を使用してCLOB
を引数として渡すことはできます。
関連項目:
-
詳細は、「データ型の比較規則」および「REPLACE」を参照してください。
-
expr
からの文字とfrom_string
からの文字を比較するためにTRANSLATE
で使用される照合を定義する照合決定ルール、およびTRANSLATE
の文字の戻り値に割り当てる照合を定義する照合導出ルールは、『Oracle Databaseグローバリゼーション・サポート・ガイド』の付録Cを参照してください
例
次の文は、本のタイトルを、ファイル名などに使用するために文字列に変換します。from_string
には、空白、アスタリスク、スラッシュおよびアポストロフィの4つの文字(およびエスケープ文字のアポストロフィ)が含まれています。to_string
には、3つのアンダースコアのみが含まれています。from_string
の4つ目の文字に対応する置換文字がないため、戻り値ではアポストロフィが削除されています。
SELECT TRANSLATE('SQL*Plus User''s Guide', ' */''', '___') FROM DUAL; TRANSLATE('SQL*PLUSU -------------------- SQL_Plus_Users_Guide