1

我想知道如何在 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;'

那么程序应该能够显示以下信息:

总列 = 6

第 1 列:TABLESPACE_NAME
数据类型:varchar2

第 2 列:TABLE_NAME
数据类型:varchar2

第 3 列:状态
数据类型:varchar2

第 4 列:NUM_ROWS
数据类型:数字

第 5 列:LAST_ANALYZED
数据类型:日期

第 6 列:COLUMN_COUNT
数据类型:数字

如果我们更改 SQL,则结果应相应更改。

4

1 回答 1

1
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
;
于 2013-10-26T18:23:06.610 回答