REPLACE

REPLACEは、指定した文字列の連続文字を別の文字列に置換するか、文字列をすべて削除します。

SQL構文

REPLACE (String, SearchString [,ReplacementString] )

パラメータ

REPLACEには、次のパラメータがあります。

パラメータ 説明

String

置換するサブストリングを含むソース文字列。

SearchString

元の文字列で置換される文字列。SearchStringNULLの場合は、元のStringが変更されずに戻されます。

ReplacementString

元の文字列に出現するすべての検索文字列の置換に使用される文字列。ReplacementStringが省略されている場合やNULLの場合は、出現するすべてのSearchStringがソースStringから削除されます。

説明

  • REPLACEは、ソースString内で出現するすべてのSearchStringReplacementStringに置換された文字列を戻します。

  • StringSearchStringおよびReplacementStringには、CHARVARCHAR2NCHARNVARCHAR2CLOBまたはNCLOBのデータ型を指定できます。TimesTenデータ型およびOracle Databaseデータ型の両方がサポートされます。BLOBを除く文字ではないすべてのデータ型は、暗黙的に文字列データ型に変換されます。

  • StringCHARまたはVARCHAR2の場合、戻される文字列はVARCHAR2データ型になります。StringNCHARまたはNVARCHAR2の場合、戻される文字列はNVARCHAR2データ型になります。CLOBまたはNCLOBデータ型の場合、戻されるデータ型はStringで指定されたデータ型と同じになります。文字セットは、ソースStringと同じになります。

  • 戻される文字列の長さが0(ゼロ)の場合、NULLがOracle Database データ型に戻され、長さ0(ゼロ)の文字列がTimesTenデータ型に戻されます。すべてのデータ型の詳細は、「データ型」を参照してください。

次の例では、Canadaのすべての場所を出力し、国コードCAをCanadaに置換して読みやすくします。

Command> SELECT location_id, street_address,
           city, state_province, postal_code,
         REPLACE(country_id, 'CA', 'Canada') 
         FROM LOCATIONS 
         WHERE country_id LIKE 'CA';

< 1800, 147 Spadina Ave, Toronto, Ontario, M5V 2L7, Canada >
< 1900, 6092 Boxwood St, Whitehorse, Yukon, YSW 9T2, Canada >
2 rows found.