oracle 如何获取带有相应括号的列名和数据类型[重复]

jgzswidk  于 2023-05-28  发布在  Oracle
关注(0)|答案(1)|浏览(194)

此问题已在此处有答案

How do I get column datatype in Oracle with PL-SQL with low privileges?(11个回答)
8小时前关闭
我试图打印列名称沿着数据类型,但在DLL格式。却不知从何开始

预期输出:

Name varchar2(255)
Age  varchar2(266)
creation date

我使用的SQL查询如下
select column_name,data_type from all_tab_cols where table_name='EMP';
上面的查询给出了列名和数据类型,但如何实现括号()

kxeu7u2r

kxeu7u2r1#

您可以使用dbms_metadata,也可以自己组装DDL。在大多数情况下,这将为您提供表DDL的列列表部分:

SELECT column_name||' '||data_type||CASE WHEN (data_type LIKE '%CHAR%') THEN '('||char_length||')'
                                            WHEN (data_type LIKE '%RAW%') THEN '('||data_length||')'
                                            WHEN (data_type = 'NUMBER') THEN '('||NVL(TO_CHAR(data_precision),'*')||DECODE(data_scale,NULL,NULL,','||data_scale)||')'
                                    END||','
     FROM all_tab_cols 
    WHERE table_name='EMP'

相关问题