QUERY ODBC

SELECT 文と同じ方法で結果セットを提供します。そのため、DECLARE および OPEN、または DECLARE、PREPARE および OPEN を使用して、QUERY ODBC をカーソルに関連付ける必要があります。

構文、書き方 1:

>>--EXEC SQL---QUERY ODBC---.-COLUMN--.------------------>
                            +-COLUMNS-+

 >---.--------------------------.--.------------------.--->
     +-QUALIFIER qualifier_name-+  +-OWNER owner_name-+

 >--.----------------------.--.------------------------.-->
    +-TABLENAME table_name-+  +-COLUMNNAME column_name-+

 >---END-EXEC---<>

構文、書き方 2:

>>--EXEC SQL---QUERY ODBC---.-DATATYPE--.---------------->
                            +-DATATYPES-+

 >---.-------------------------.---END-EXEC---><
     +-TYPE--.-datatype_name--.+
             +-BIGINT---------+
             +-BINARY---------+
             +-BIT------------+
             +-CHAR-----------+
             +-DATE-----------+
             +-DECIMAL--------+
             +-DOUBLE---------+
             +-FLOAT----------+
             +-INTEGER--------+
             +-LONG VARBINARY-+
             +-LONG VARCHAR---+
             +-NUMERIC--------+
             +-REAL-----------+
             +-SMALLINT-------+
             +-TIME-----------+
             +-TIMESTAMP------+
             +-TINYINT--------+
             +-VARBINARY------+
             +-VARCHAR--------+

構文、書き方 3:

>>--EXEC SQL---QUERY ODBC---.-TABLE--.------------------>
                            +-TABLES-+
>---.--------------------------.--.------------------.--->
    +-QUALIFIER qualifier_name-+  +-OWNER owner_name-+

 >--.----------------------.--.------------------------.-->
    +-TABLENAME table_name-+  +-TYPE tabletype_name----+

 >--END-EXEC--<>

パラメーター:

qualifier_name テーブルの選択に使用する修飾子を指定するホスト変数、識別子、または定数。すべての ODBC ドライバーが修飾子をサポートしているわけではないので、その指定内容が異なります。たとえば、データソースにより、複数のデータベースがサポートされている場合は、修飾子を使って使用するデータベースを指定できます。また、ファイルベースのデータソースにアクセスできるドライバーの場合は、修飾子を使用して検索対象となる特定のディレクトリを指定できます。
owner_name テーブルの選択に使用するテーブルオーナーを指定するホスト変数、識別子、または定数。すべての ODBC ドライバーがテーブル所有権をサポートしているわけではありません。
table_name クエリに含めるテーブルを指定するホスト変数、識別子、または、定数。
datatype_name クエリ対象となるデータ型を指定するホスト変数、識別子、または、定数。
tabletype_name クエリに含めるテーブルタイプのリストを指定するホスト変数、識別子、または、定数。

説明:

検索パターンは、SQL 識別子に有効な文字と、任意の 1 文字に一致するアンダースコア (_)、 任意の文字列に一致するパーセント記号 (%)、または、パターン内でアンダースコアまたはパーセント記号がワイルドカードではなく、 文字そのものを意味するドライバー定義のエスケープ文字の組み合わせで構成されます。

検索パターンパラメーターが指定されていない場合は、関連する辞書項目すべてに一致する % のパターンが使用されます。

テーブルのクエリには、次の規則が適用されます。

  • qualifier-name が % で、owner-name および table-name が空の文字列である場合は、結果集合が、データソースで有効な修飾子のリストで構成されます。結果セット (下記を参照) にある TABLE_QUALIFIER 以外のすべての列は、NULL になります。
  • owner-name が % で、qualifier-name および table-name が空の文字列である場合は、結果集合が、データソースで有効なオーナーのリストで構成されます。結果セット (下記を参照) にある TABLE_OWNER 以外のすべての列は、NULL になります。
  • tabletype-name が % で、qualifier-nameowner-name および table-name が空の文字列である場合は、結果集合が、データソースで有効なテーブルタイプのリストで構成されます。結果セット (下記を参照) にある TABLE_TYPE 以外のすべての列は、NULL になります。
  • tabletype-name を指定していない場合は、すべてのタイプのテーブルが結果集合に返されます。tabletype-name を指定する場合は、テーブルタイプのリストを「TABLE,VIEW」のようにカンマで区切って指定します。

例:

     EXEC SQL
        DECLARE tcurs CURSOR FOR QUERY ODBC TABLES
     END-EXEC

     EXEC SQL DECLARE C1 CURSOR FOR
        QUERY ODBC TABLES OWNER :tab-owner TABLETYPE 'TABLE,VIEW'
     END-EXEC

     MOVE 'staff' to tab-name
     EXEC SQL DECLARE C2 CURSOR FOR
        QUERY ODBC COLUMNS TABLENAME :tab-name
     END-EXEC

     EXEC SQL DECLARE C3 CURSOR FOR
        QUERY ODBC DATATYPES
     END-EXEC