名前
GET DESCRIPTOR -- SQL記述子領域から情報を入手します。
記述形式
GET DESCRIPTOR descriptor_name :hostvariable = descriptor_header_item [, ... ]
GET DESCRIPTOR descriptor_name VALUE column_number :hostvariable = descriptor_item [, ... ]
説明
GET DESCRIPTORはSQL記述子領域から問い合わせ結果セットに関する情報を取り出し、それをホスト変数に格納します。 記述子領域は通常、このコマンドを使用してホスト言語変数に情報を転送する前に、FETCHまたはSELECTを用いて値が投入されます。
このコマンドには2つの構文があります。 1番目の構文では、そのまま結果セットに適用されている記述子の"ヘッダ"項目を取り出します。 行数が1つの例です。 列番号を追加のパラメータとして必要とする2番目の構文では特定の列に関する情報を取り出します。 例えば、列名と列の実際の値です。
パラメータ
記述子の名前です。
どのヘッダ情報を取り出すかを識別するトークンです。 結果セット内の列数を入手するCOUNTのみが現在サポートされています。
情報を取り出す列の番号です。 1から数えます。
どの列に関する情報を取り出すかを識別するトークンです。 サポートされる項目のリストについては“D.6.1 名前付きSQL記述子領域”を参照してください。
記述子領域から取り出したデータを受け取るホスト変数です。
使用例
この例は結果セット内の列数を取り出します。
EXEC SQL GET DESCRIPTOR d :d_count = COUNT END-EXEC.
この例は最初の列のデータ長を取り出します。
EXEC SQL GET DESCRIPTOR d VALUE 1 :d_returned_octet_length = RETURNED_OCTET_LENGTH END-EXEC.
この例は、2番目の列のデータ本体を文字列として取り出します。
EXEC SQL GET DESCRIPTOR d VALUE 2 :d_data = DATA END-EXEC.
以下は、SELECT current_database();を実行し、列数、列のデータ長、列のデータを表示する手続き全体を示す例です。
EXEC SQL BEGIN DECLARE SECTION END-EXEC. 01 D-COUNT PIC S9(9) COMP-5. 01 D-DATA PIC X(1024). 01 D-RETURNED-OCTET-LENGTH PIC S9(9) COMP. EXEC SQL END DECLARE SECTION END-EXEC. EXEC SQL CONNECT TO testdb AS con1 USER testuser END-EXEC. EXEC SQL ALLOCATE DESCRIPTOR d END-EXEC. * Declare, open a cursor, and assign a descriptor to the cursor EXEC SQL DECLARE cur CURSOR FOR SELECT current_database() END-EXEC. EXEC SQL OPEN cur END-EXEC. EXEC SQL FETCH NEXT FROM cur INTO SQL DESCRIPTOR d END-EXEC. * Get a number of total columns EXEC SQL GET DESCRIPTOR d :D-COUNT = COUNT END-EXEC. DISPLAY "d_count = " D-COUNT. * Get length of a returned column EXEC SQL GET DESCRIPTOR d VALUE 1 :D-RETURNED-OCTET-LENGTH = RETURNED_OCTET_LENGTH END-EXEC. DISPLAY "d_returned_octet_length = " D-RETURNED-OCTET-LENGTH. * Fetch the returned column as a string EXEC SQL GET DESCRIPTOR d VALUE 1 :D-DATA = DATA END-EXEC. DISPLAY "d_data = " D-DATA. * Closing EXEC SQL CLOSE cur END-EXEC. EXEC SQL COMMIT END-EXEC. EXEC SQL DEALLOCATE DESCRIPTOR d END-EXEC. EXEC SQL DISCONNECT ALL END-EXEC.
この例を実行すると、結果は以下のようになります。
d_count = +000000001 d_returned_octet_length = +000000006 d_data = testdb
互換性
GET DESCRIPTORは標準SQLで規定されています。
関連項目