【问题标题】:How to get total number of columns, column name, data type of a SQL in oracle如何在oracle中获取SQL的总列数、列名、数据类型
【发布时间】:2013-11-05 17:42:33
【问题描述】:

我想知道如何在 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,那么结果应该相应地更改。

【问题讨论】:

标签: oracle types cursor


【解决方案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
;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 2013-12-10
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多