DESCRIBE_COLUMNS2 プロシージャー - SELECT リストに含まれる列名の記述の取得

DESCRIBE_COLUMNS2 プロシージャーは、カーソルから SELECT リストに含まれる列の記述を取得する機能を提供します。

構文

構文図を読む構文図をスキップするDBMS_SQL.DESCRIBE_COLUMNS( c,col_cnt,desc_tab2 )

パラメーター

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_TBS
DESC_TAB2 は、列情報の入った DESC_REC2 レコードの配列です。
表 1. DESC_REC2 レコードによる DESC_TAB2 の定義
レコード名 説明
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];