エスケープ・シーケンスのサポート

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と同等のものに限定されます。

  • ソースとターゲットのデータ型は、同一である必要があります(NCHARNCHARなど)。

  • 各エスケープ・シーケンスは、逆斜線(コード・ポイント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進エスケープ・シーケンスです。