DESCRIBE_COLUMNS2 过程 - 检索 SELECT 列表中的列名的描述

DESCRIBE_COLUMNS2 过程能够通过游标检索 SELECT 列表中的列的描述。

语法

阅读语法图跳过直观语法图DBMS_SQL.DESCRIBE_COLUMNS( c,col_cnt,desc_tab2 )

参数

c
类型为 INTEGER 的输入自变量,用于指定要描述其列的游标的标识。
col_cnt
类型为 INTEGER 的输出自变量,用于返回游标的 SELECT 列表中的列数。
desc_tab
类型为 DESC_TAB2 的输出自变量,用于描述列元数据。DESC_TAB2 数组提供指定游标中的每列的信息

权限

对 DBMS_SQL 模块的 EXECUTE 特权。

使用说明

此过程需要页大小为 4K 的用户临时表空间;否则它会返回 SQL0286N 错误。可使用此命令创建用户临时表空间:
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 数据类型,那么此变量指示列可保存的最大双字节字符数。
col_scale 按数据库中定义的列的小数位(仅适用于 DECIMAL、NUMERIC 和 TIMESTAMP)。
col_charsetid 始终为 NULL。
col_charsetform 始终为 NULL。
col_null_ok 可空指示符。如果该列可空,那么其值为 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];