Oracle GoldenGateの入力におけるオブジェクト名の指定

パラメータ・ファイル(TABLE文、MAP文など)、列変換関数、コマンド、その他の入力でオブジェクト名を指定する際には、次のルールが適用されます。

Windowsシステムでのパラメータ・ファイルでのファイルシステム・パス名の指定

Windowsシステムでは、ファイルシステム・パス名のディレクトリの名前が数字で始まる場合、Oracle GoldenGate入力(パラメータ・ファイルやコマンドなど)にそのパスをリストするときに、パスをバックスラッシュでなくスラッシュで指定する必要があります。これにより、Oracle GoldenGateでその名前が8進エスケープ・シーケンスとして解釈されることを回避します。たとえば、次のパスには、8進シーケンス\202として解釈される\2023という名前のディレクトリが含まれています。

C:\deployments\ea
C:\deployments\north\ea
C:\deployments\north\2023\ea

前出のパスは、次のようにスラッシュとともに使用できます。

C:/deployments/ea
C:/deployments/north/ea

詳細は、「エスケープ・シーケンスのサポート」を参照してください

スラッシュを含む名前の指定

表名のいずれかの部分にスラッシュ文字(/)が含まれている場合、その名前コンポーネントを二重引用符で囲む必要があります。オブジェクト名がIBM iプラットフォームからのものの場合、このかぎりではありません。次に例を示します。

"c/d"
"/a".b
a."b/"

二重引用符で囲まれていないスラッシュが名前に含まれる場合、その名前はIBM iプラットフォーム(DB2 for iデータベース)からのものとしてOracle GoldenGateで処理されます。名前に含まれるスラッシュは、区切り文字として解釈されます。

大/小文字が区別されるデータベース・オブジェクト名の指定

Oracle GoldenGateでは大/小文字が区別される名前をサポートしています。大/小文字が区別されるオブジェクトを指定する場合は、次のルールに従います。

表9-17は、オブジェクト名における大/小文字の区別サポートの状況を、サポートされるデータベースごとに簡単にまとえたものです。この種のサポートの詳細は、データベースのドキュメントを参照してください。

表17データベースごとのオブジェクト名の大文字/小文字の区別

データベース 大/小文字を区別するために引用符が必要か 引用符で囲んでいないオブジェクト名 引用符で囲んだオブジェクト名
DB2 はい。大/小文字を区別するかどうかを引用符の有無で識別します。 大/小文字が区別されず、大文字で格納されます。 大/小文字が区別され、大文字と小文字の混在で格納されます。

MySQL

(大/小文字が区別されるデータベース)

いいえ

  • 常に大/小文字が区別されます。大/小文字の混在で格納されます。

  • 列、トリガーおよびプロシージャの名前は大/小文字が区別されません。

影響なし 影響なし
Oracle AI Database はい。大/小文字を区別するかどうかを引用符の有無で識別します。 大/小文字が区別されず、大文字で格納されます。 大/小文字が区別され、大文字と小文字の混在で格納されます。

SQLサーバー

(データベースは大/小文字を区別するものとして作成)

いいえ

常に大/小文字が区別されます。大/小文字の混在で格納されます。

影響なし

影響なし

SQLサーバー

(データベースは大/小文字を区別しないものとして作成)

いいえ

常に大/小文字が区別されず、大/小文字の混在で格納されます。

影響なし 影響なし
Teradata

いいえ

常に大/小文字が区別されず、大/小文字の混在で格納されます。

影響なし 影響なし

ノート:サポートされるすべてのデータベースでは、パスワードは、関連オブジェクト名が引用符で囲むかどうかに関係なく、常に大/小文字を区別するものとして扱われます。

大/小文字を区別する列名とリテラルの区別

Oracle GoldenGateでの列名とリテラルの指定は、デフォルトで、SQL-92ルールに従います。大/小文字の区別をサポートするには名前を引用符で囲む必要があるデータベースの場合、Oracle GoldenGateのパラメータ・ファイル、変換関数、ユーザー・イグジットおよびコマンドでは、大/小文字が区別される列名を二重引用符で囲む必要があります。たとえば:

"columnA"

大/小文字を区別するのに引用符が不要なデータベースの場合、大/小文字が区別される列名はデータベースに格納されているとおりに指定する必要があります。たとえば:

ColumnA

リテラルを一重引用符で囲む必要があります。次の例では、Product_CodeはOracle AI Database内の大/小文字が区別する列名であり、その他の文字列はリテラルです。

@CASE ("Product_Code", 'CAR', 'A car', 'TRUCK', 'A truck')