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では大/小文字が区別される名前をサポートしています。大/小文字が区別されるオブジェクトを指定する場合は、次のルールに従います。
-
大/小文字が区別されるデータベースのオブジェクト名は、それをホスト・データベースに格納するときと同じ大/小文字で指定します。データベースのタイプによっては、大/小文字の区別の有無がデータベースのレベルごとに異なる場合がありますので注意してください(スキーマは大/小文字が区別されるが、表は区別されないなど)。大/小文字を区別するには引用符が必要になるデータベースの場合は、大/小文字を区別する各オブジェクトを修飾名の中で引用符で囲んでください。
正:
TABLE "Sales"."ACCOUNT"
誤:
TABLE "Sales.ACCOUNT"
-
Oracle GoldenGateでは、マッピング目的での必要に応じて、大/小文字が区別されない名前を格納時の大/小文字に変換します。
表11-17は、オブジェクト名における大/小文字の区別のサポート状況を、サポートされるデータベースごとに簡単にまとめたものです。この種のサポートの詳細は、データベースのドキュメントを参照してください。
表11-17 データベースごとのオブジェクト名の大/小文字の区別
データベース | 大/小文字を区別するために引用符が必要か | 引用符で囲んでいないオブジェクト名 | 引用符で囲んだオブジェクト名 |
---|---|---|---|
DB2 |
はい。大/小文字を区別するかどうかを引用符の有無で識別します。 |
大/小文字が区別されず、大文字で格納されます。 |
大/小文字が区別され、大文字と小文字の混在で格納されます。 |
MySQL (大/小文字が区別されるデータベース) |
いいえ
|
影響なし |
影響なし |
Oracle Database |
はい。大/小文字を区別するかどうかを引用符の有無で識別します。 |
大/小文字が区別されず、大文字で格納されます。 |
大/小文字が区別され、大文字と小文字の混在で格納されます。 |
SQL Server (データベースは大/小文字を区別するものとして作成) |
いいえ 常に大/小文字が区別され、大文字と小文字の混在で格納されます。 |
影響なし |
影響なし |
SQL Server (データベースは大/小文字を区別しないものとして作成) |
いいえ 常に大/小文字が区別されず、大文字と小文字の混在で格納されます。 |
影響なし |
影響なし |
Teradata |
いいえ 常に大/小文字が区別されず、大文字と小文字の混在で格納されます。 |
影響なし |
影響なし |
ノート:
サポートされるすべてのデータベースにおいて、パスワードは、関連オブジェクト名が引用符で囲まれているかどうかに関係なく、常に大/小文字を区別するものとして扱われます。
大/小文字が区別される列名とリテラルの区別
Oracle GoldenGateでの列名とリテラルの指定は、デフォルトで、SQL-92ルールに従います。大/小文字の区別をサポートするには名前を引用符で囲む必要があるデータベースの場合、Oracle GoldenGateのパラメータ・ファイル、変換関数、ユーザー・イグジットおよびコマンドでは、大/小文字が区別される列名を二重引用符で囲む必要があります。たとえば:
"columnA"
大/小文字を区別するのに引用符が不要なデータベースの場合、大/小文字が区別される列名はデータベースに格納されているとおりに指定する必要があります。たとえば:
ColumnA
リテラルは一重引用符で囲む必要があります。次の例では、Product_Code
はOracleデータベース内の大/小文字が区別される列名であり、その他の文字列はリテラルです。
@CASE ("Product_Code", 'CAR', 'A car', 'TRUCK', 'A truck')