名前のメタデータをチェックするマクロの使用

ユーザー・イグジットAPIによって渡されるオブジェクト名は、ユーザー・イグジット・セッション文字セットでエンコードされた正確な名前で、データベースから取得されたものと完全に同じ名前です。ユーザー・イグジットでオブジェクト名をリテラル文字列と比較する場合、ユーザー・イグジットでデータベースのロケールを取得し、文字列を正規化して同じエンコーディングでオブジェクト名と比較できるようにする必要があります。

Oracle GoldenGateには、ユーザー・イグジットでコールし、データベース・オブジェクト名のメタデータをチェックできる次のマクロが用意されています。たとえば、マクロを使用して、引用符で囲まれた名前で大/小文字が区別されるかどうかや、大/小文字混在でデータベース・サーバーに格納されているかどうかをチェックできます。これらのマクロは、usrdecs.hファイルで定義されています。

表11-21 メタデータ・チェック用のマクロ

マクロ 確認の対象

supportsMixedCaseIdentifiers( nameMeta, DbObjType )

大/小文字混在で引用符で囲まれていない、指定されたデータ型の名前を、データベースが大/小文字を区別して処理し、大/小文字混在で格納するかどうか。

supportsMixedCaseQuotedIdentifiers( nameMeta, DBObjType )

大/小文字混在で引用符で囲まれた、指定されたデータ型の名前を、データベースが大/小文字を区別して処理し、大/小文字混在で格納するかどうか。

storesLowerCaseIdentifiers( nameMeta, DbObjType )

大/小文字混在で引用符で囲まれていない、指定されたデータ型の名前を、データベースが大/小文字を区別せずに処理し、小文字で格納するかどうか。

storesLowerCaseQuotedIdentifiers( nameMeta, DbObjType )

大/小文字混在で引用符で囲まれた、指定されたデータ型の名前を、データベースが大/小文字を区別せずに処理し、小文字で格納するかどうか。

storesMixedCaseIdentifiers( nameMeta, DbObjType )

大/小文字混在で引用符で囲まれていない、指定されたデータ型の名前を、データベースが大/小文字を区別せずに処理し、大/小文字混在で格納するかどうか。

storesMixedCaseQuotedIdentifiers( nameMeta, DbObjType )

大/小文字混在で引用符で囲まれた、指定されたデータ型の名前を、データベースが大/小文字を区別せずに処理し、大/小文字混在で格納するかどうか。

storesUpperCaseIdentifiers( nameMeta, DbObjType )

大/小文字混在で引用符で囲まれていない、指定されたデータ型の名前を、データベースが大/小文字を区別せずに処理し、大文字で格納するかどうか。

storesUpperCaseQuotedIdentifiers( nameMeta, DbObjType )

大/小文字混在で引用符で囲まれた、指定されたデータ型の名前を、データベースが大/小文字を区別せずに処理し、大文字で格納するかどうか。