主コンテンツへ
Oracle® Fusion Middleware Oracle GoldenGateリファレンスfor Windows and UNIX
12c (12.2.0.1)
E70112-04
目次へ移動
目次

前
次

3.195 USEANSISQLQUOTES | NOUSEANSISQLQUOTES

適用対象

GLOBALS

説明

USEANSISQLQUOTESおよびNOANSISQLQUOTESパラメータでは、Oracle GoldenGateが一重または二重引用符で囲まれる列名とリテラルを扱う方法を制御します。

注意:

表名などのオブジェクト名をキャプチャおよびマッピングする場合、USEANSISQLQUOTESNOUSEANSISQLQUOTESのどちらが指定されているかにかかわらず、Oracle GoldenGateは常に、二重引用符で囲んだ文字列を大/小文字を区別するオブジェクト名として認識します。

USEANSISQLQUOTESは、Oracle GoldenGateのデフォルトの動作です。Oracle GoldenGateに、引用符の使用についてSQL-92ルールに従うように指示します。USEANSISQLQUOTESが有効になっている場合、Oracle GoldenGateでは、二重引用符で囲んだ文字列は大/小文字を区別する列名として扱われ、一重引用符で囲んだ文字列はリテラルとして扱われます。たとえば、文字列長を返す@STRLEN変換ファンクションの動作を考えてみます。デフォルトでは、Oracle GoldenGateは二重引用符で囲まれた"ABC"を大文字の列名として解釈するため、@STRLENは、列"ABC"がどのようなでも、その長さを返します。

COLMAP ( TGT1 = @STRLEN("ABC") )

前の例で二重引用符が一重引用符に変更された場合、Oracle GoldenGateは'ABC'をリテラルとして解釈するため、@STRLEN3を返します。

COLMAP ( TGT1 = @STRLEN('ABC') )

NOUSEANSISQLQUOTESは、バージョン12cより前のOracle GoldenGateバージョン(二重引用符内の文字列がリテラルで、(引用符で囲まれているかどうかにかかわらず)大/小文字を区別する列名がサポートされていない)のパラメータ・ファイルとの下位互換性を目的としています。たとえば、文字列長を返す@STRLEN変換ファンクションの動作を考えてみます。NOUSEANSISQLQUOTESでは、Oracle GoldenGateは二重引用符で囲まれた"ABC"をリテラルとして解釈するため、次の@STRLEN指定は値3を返します。

  • COLMAP ( TGT1 = @STRLEN("ABC") )
    

使用すると、NOUSEANSISQLQUOTESは、ローカルOracle GoldenGateインスタンス内のすべてのTABLEおよびMAP文に影響します。

デフォルト

USEANSISQLQUOTES

構文

USEANSISQLQUOTES | NOUSEANSISQLQUOTES

例1   

次のマトリックスは、USEANSIISQLQUOTESNOUSEANSISQLQUOTESのデフォルト間の入力変数に関連する引用符の使用の違いを示します。


表3-36 [NO]USEANSISQLQUOTESの入力要件の比較

入力変数 USEANSISQLQUOTES NOUSEANSISQLQUOTES

リテラル・テキスト

'text string'

"text string"

データベース内の引用符なしの列名

COLUMN1

COLUMN1

引用符付きの列名

(大/小文字はOracle GoldenGateで保持)

"Column1"

サポートされていません。すべての名前は大文字に変換されます。


例2   

次のマトリックスは、リテラル入力の一部であるリテラルの一重引用符または二重引用符をエスケープする方法を示します。


表3-37 リテラル引用符のエスケープ

入力変数 USEANSISQLQUOTES NOUSEANSISQLQUOTES

リテラル・テキスト:

John's Car

'John''s' car

この例では、2つのアポストロフィを使用します。1つはリテラルのアポストロフィとして使用し、もう1つはエスケープ文字として使用します。(アポストロフィは、一重引用符と同じ文字です。)

"John's car"

エスケープ文字は不要です。

リテラル・テキスト:

Double quote (")

'Double quote (")'

エスケープ文字は不要です。

"Double quote ("")"

この例では、2つの二重引用符を使用します。1つはリテラルの二重引用符として使用し、もう1つはエスケープ文字として使用します。

列名:

"Column"1

"Column""1"

この例では、2つの二重引用符を使用します。1つはリテラルの二重引用符として使用し、もう1つはエスケープ文字として使用します。

サポートされていません。