DB2 10.5 for Linux, UNIX, and Windows

CLI アプリケーションでのシステム・カタログ情報の照会のためのカタログ関数

カタログ関数 (スキーマ関数とも呼ばれる) は総称インターフェースとなるため、 DB2® ファミリーのサーバー全体で照会を発行し、一貫性のある結果セットを受け取ることができます。カタログ関数を使用することで、サーバーに固有のカタログ照会やリリースに固有のカタログ照会を受け取ることを回避できます。

アプリケーションが頻繁に行う最初のタスクの 1 つに表のリストの表示があり、 このリストから 1 つ以上の表を選択します。 アプリケーションからデータベース・システム・カタログに対して独自の照会を発行して、 そのような DB2 コマンドのためにカタログ情報を入手することもできますが、 最善の方法はその代わりにアプリケーションから CLI カタログ関数を呼び出すことです。

カタログ関数を使用すると、 ステートメント・ハンドルによってアプリケーションに結果セットが返されます。 この関数を呼び出すことは、 SQLExecDirect() を使用してシステム・カタログ表に対して 1 つの選択を実行するのと概念的に同じです。 この関数呼び出しの後で、アプリケーションは結果セットから個々の行をフェッチすることができ、 通常どおり SQLFetch() によって列データを処理します。 CLI カタログ関数は、次のとおりです。
  • SQLColumnPrivileges()
  • SQLColumns()
  • SQLExtendedProcedures()
  • SQLExtendedProcedureColumns()
  • SQLForeignKeys()
  • SQLGetTypeInfo()
  • SQLPrimaryKeys()
  • SQLProcedureColumns()
  • SQLProcedures()
  • SQLSpecialColumns()
  • SQLStatistics()
  • SQLTablePrivileges()
  • SQLTables()

この関数によって返される結果セットは、各カタログ関数の説明の部分で定義されています。 列は、指定された順序で定義されます。 今後のリリースでは、それぞれの結果セットの定義の末尾に他の列が追加される可能性があります。 したがって、そのような変更の影響を受けないような方法で、 アプリケーションを作成する必要があります。

注: デフォルトでは、Informix® データベース・サーバーは、 システム・カタログにあるスキーマ情報 (表名や列名など) を小文字で 返します。一方、DB2 データ・サーバーは、 スキーマ情報を大文字で返します。

カタログ関数の中には、非常に複雑な照会を実行する結果となるものがあります。 返された情報をアプリケーションが保管するようにし、 同じ情報を入手するために繰り返し呼び出しを行うことがないようにすることをお勧めします。