DESCRIBE_COLUMNS2 プロシージャー - SELECT リストに含まれる列名の記述の取得
DESCRIBE_COLUMNS2 プロシージャーは、カーソルから SELECT リストに含まれる列の記述を取得する機能を提供します。
構文
パラメーター
- c
- 列が記述されるカーソルのカーソル ID を指定する、タイプ INTEGER の入力引数。
- col_cnt
- カーソルの SELECT リスト内の列の数を戻す、タイプ INTEGER の出力引数。
- desc_tab
- 列のメタデータを記述する、タイプ DESC_TAB2 の出力引数。 DESC_TAB2 配列は、指定されたカーソルの各列の情報を提供します。
許可
DBMS_SQL モジュールに対する EXECUTE 特権。
使用上の注意
このプロシージャーは、ページ・サイズが 4K の USER TEMPORARY 表スペースを必要とします。この要件が満たされない場合は SQL0286N エラーを戻します。 USER TEMPORARY 表スペースは、次のコマンドで作成できます。
CREATE USER TEMPORARY TABLESPACE DBMS_SQL_TEMP_TBSDESC_TAB2 は、列情報の入った DESC_REC2 レコードの配列です。
| レコード名 | 説明 |
|---|---|
| col_type | C および C++ 組み込み SQL アプリケーションにおいてサポートされる SQL データ・タイプで定義されている SQL データ・タイプ。 |
| col_max_len | 列の最大長。 |
| col_name | 列名。 |
| col_name_len | 列名の長さ。 |
| col_schema | 常に NULL。 |
| col_schema_name_len | 常に NULL。 |
| col_precision | データベースで定義されている列の精度。 col_type がグラフィックまたは DBCLOB SQL データ・タイプを示す場合、この変数は列が保持できる 2 バイト文字の最大数を表します。 |
| col_scale | データベースで定義されている列の位取り (DECIMAL、NUMERIC、TIMESTAMP にのみ適用)。 |
| col_charsetid | 常に NULL。 |
| col_charsetform | 常に NULL。 |
| col_null_ok | NULL 可能標識。 列が NULL 可能の場合は値が 1 に、それ以外の場合は 0 になります。 |
ALTER MODULE SYSIBMADM.DBMS_SQL PUBLISH TYPE DESC_REC2 AS ROW
(
col_type INTEGER,
col_max_len INTEGER,
col_name VARCHAR(128),
col_name_len INTEGER,
col_schema_name VARCHAR(128),
col_schema_name_len INTEGER,
col_precision INTEGER,
col_scale INTEGER,
col_charsetid INTEGER,
col_charsetform INTEGER,
col_null_ok INTEGER
);
ALTER MODULE SYSIBMADM.DBMS_SQL PUBLISH TYPE DESC_TAB2 AS DESC_REC2 ARRAY[INTEGER]; 