@STRSUB
@STRSUBファンクションでは、文字列(文字)用の列または定数内の文字を置換します。リテラル文字列は、一重引用符で囲みます。
Oracle GoldenGateでは、このファンクションで、Unicode、およびMicrosoft Windows、UNIX、Linuxオペレーティング・システムのネイティブ・エンコーディングの文字列を格納する列内の文字を表すために、エスケープ・シーケンスの使用をサポートしています。引数がUnicodeで指定される場合、ターゲット列はSQL Unicodeデータ型である必要があります。
文字列引数では、1から255のシングルバイト・コード値を16進または8進の形式で使用できます。16進値AからFは大文字と小文字を区別しませんが、先頭にある'x'は小文字にする必要があります。ゼロ(0)の値(\x00および\000)は文字列の終了文字になるため、許可されません。
UNICODE値はサポートされません。
このファンクションは、NCHARまたはNVARCHARデータ型をサポートしていません。
構文
@STRSUB
(<source_string>, <search_string>, <substitute_string>
[, <search_string>, <substitute_string>] [, ...])
マルチバイト文字の場合、STRSUB()は次のように使用する必要があります。
FIND_CATEGORY = @STRSUB (FIND_CATEGORY, '\u00A0', ''),
<source_string>
置換される文字を含む一重引用符で囲まれたソース文字列またはソース列名。
<search_string>
一重引用符で囲まれた置換される文字列。
<substitute_string>
検索した文字列と置換される一重引用符で囲まれた文字列。
例
次の例では、xxABCxxが返されます。
@STRSUB ('123ABC123', '123', 'xx')
次の例では、023zBC023が返されます。
@STRSUB ('123ABC123', 'A', 'z', '1', '0')
次に、16進数文字列引数を使用して^Zをスペースで置き換える例を示します。
@strsub (col1,'\x1A',' '));