エスケープ・シーケンスのサポート
Oracle GoldenGateでは、パラメータ・ファイルで文字の列、リテラル・テキストまたはオブジェクト名を表すためのエスケープ・シーケンスの使用がサポートされています。エスケープ・シーケンスは、オペレーティング・システムで必要な文字(制御文字など)がサポートされていない場合に、またはパラメータ・ファイルで使用できない文字が必要になるその他の目的のために使用できます。
エスケープ・シーケンスは、パラメータ・ファイルの任意の場所で使用できますが、TABLE
文またはMAP
文の次の要素で特に便利です。
-
オブジェクト名
-
WHERE
句 -
Unicode列にUnicode文字を割り当てるか、列にネイティブ・エンコーディングされた文字を割り当てる
COLMAP
句 -
COLMAP
句内のOracle GoldenGateの列変換関数
Oracle GoldenGateでは、次のタイプのエスケープ・シーケンスがサポートされます。
-
\uFFFF
: Unicodeエスケープ・シーケンス。サロゲート・ペアを除き、任意のUNICODE
コード・ポイントを使用できます。 -
\377
8進エスケープ・シーケンス -
\xFF
: 16進エスケープ・シーケンス
以下のルールが適用されます。
-
TABLE
またはMAP
でオブジェクト名のマッピングに使用する場合、制限は何もありません。たとえば、次のTABLE
指定は有効です。TABLE schema."\u3000ABC";
-
列マッピング関数とともに使用する場合、任意のコード・ポイントを使用できますが、対象となるのは
NCHAR/NVARCHAR
列のみです。CHAR/VARCHAR
列の場合、コード・ポイントは7ビットASCIIと同等のものに限定されます。 -
ソースとターゲットのデータ型は、同一である必要があります(
NCHAR
とNCHAR
など)。 -
各エスケープ・シーケンスは、逆斜線(コード・ポイント
U+005C
)で始め、次に文字コード・ポイントを続けます。(逆斜線は、一般的にはバックスラッシュ記号と呼ばれます。)パラメータ文または列変換関数の入力文字列内で、実際の文字のかわりにエスケープ・シーケンスを使用します。
ノート:
パラメータ・ファイルで実際のバックスラッシュを指定するには、二重のバックスラッシュを指定します。たとえば、COL1: @STRFIND (COL1, '\\' )
と指定すると、バックスラッシュが検索されます。
\uFFFF Unicodeエスケープ・シーケンスを使用する手順
-
\uFFFF
Unicodeエスケープ・シーケンスは小文字のu
で始め、次に正確に4桁の16進数を続ける必要があります。 -
サポートされる範囲は次のとおりです。
-
0
から9
(U+0030
からU+0039
) -
A
からF
(U+0041
からU+0046
) -
a
からf
(U+0061
からU+0066
)
-
\u20ac
は、ユーロ通貨記号のUnicodeエスケープ・シーケンスです。
ノート:
信頼できるクロス・プラットフォーム・サポートのために、Unicodeエスケープ・シーケンスを使用してください。8進および16進のエスケープ・シーケンスは、異なるオペレーティング・システムでは標準化されていません。
\377 8進エスケープ・シーケンスを使用する手順
-
正確に3桁の8進数が含まれる必要があります。
-
サポートされる範囲:
-
1桁目の範囲は
0
から3
(U+0030
からU+0033
) -
2桁目と3桁目の範囲は
0
から7
(U+0030
からU+0037
)\200
は、Microsoft Windowsでのユーロ通貨記号の8進エスケープ・シーケンスです。
-
\xFF 16進エスケープ・シーケンスを使用する手順
-
小文字の
x
で始め、次に正確に2桁の16進数を続ける必要があります。 -
サポートされる範囲:
-
0
から9
(U+0030
からU+0039
) -
A
からF
(U+0041
からU+0046
) -
a
からf
(U+0061
からU+0066
)
-
\x80
は、Microsoft Windows 1252 Latin1コード・ページのユーロ通貨記号を表す16進エスケープ・シーケンスです。