如何在oracle中获取SQL的总列数、列名和数据类型
我想知道如何在oracle中获得总列数、单个列名及其对应的数据类型。比如说如何在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;' 然后,程序
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
;