如何在oracle中获取SQL的总列数、列名和数据类型

如何在oracle中获取SQL的总列数、列名和数据类型,oracle,types,cursor,Oracle,Types,Cursor,我想知道如何在oracle中获得总列数、单个列名及其对应的数据类型。比如说 SQL := 'SELECT UT.TABLESPACE_NAME, UT.TABLE_NAME, UT.STATUS, UT.NUM_ROWS, UT.LAST_ANALYZED, (select count(1) from USER_TAB_COLS utc where utc.table_name = UT.TABLE_NAME) column_count from USER_TABLES ut;' 然后,程序

我想知道如何在oracle中获得总列数、单个列名及其对应的数据类型。比如说

SQL := 'SELECT UT.TABLESPACE_NAME, UT.TABLE_NAME, UT.STATUS, UT.NUM_ROWS, UT.LAST_ANALYZED, 
(select count(1) from USER_TAB_COLS utc where utc.table_name = UT.TABLE_NAME) column_count
from USER_TABLES ut;'
然后,程序应能够显示以下信息:

Total columns = 6 Column-1: TABLESPACE_NAME Data type: Varchar2 Column-2: TABLE_NAME Data type: Varchar2 Column-3: STATUS Data type: Varchar2 Column-4: NUM_ROWS Data type: Numeric Column-5: LAST_ANALYZED Data type: DATE Column-6: COLUMN_COUNT Data type: Numeric 总列数=6 第1列:表空间\u名称 数据类型:Varchar2 第2列:表名称 数据类型:Varchar2 第3栏:现状 数据类型:Varchar2 第4列:行数 数据类型:数字 第5列:最后一次分析 数据类型:日期 第6列:列计数 数据类型:数字
如果我们更改SQL,那么结果应该相应地更改。

到目前为止您研究了什么?大部分内容都可以通过查询各种元数据表找到。例如,从用户表中选择*。你是要我们帮你用谷歌搜索吗?你正在寻找
dbms\u sql.description\u columns()
:可能与你目前研究的内容重复?大部分内容都可以通过查询各种元数据表找到。例如,从用户表中选择*。你是要我们帮你用谷歌搜索吗?你在找的是
dbms\u sql.description\u columns()
:可能是
SELECT UT.TABLESPACE_NAME
, UT.TABLE_NAME
, UT.STATUS
, UT.NUM_ROWS
, UT.LAST_ANALYZED
, utc.column_name
, utc.data_type
, utc.data_length
, column_id ColumnNo
, max(utc.column_id) over (partition by ut.table_name) NoColumns
from USER_TABLES ut
inner join USER_TAB_COLS utc
on utc.table_name = ut.table_name
order by ut.tablespace_name
, ut.table_name
, utc.column_id
;