导出ORACLE表、字段、注释

先搜索了下,在原来基础上改改后用的,不知道为何有乱码,还有些会重复,不过把这个问题绕过去了...大笑,可以用

先把原来的贴出来:

select  ATC.OWNER,
        atC.TABLE_NAME,
        ATC.COLUMN_NAME,
        utc.comments,
        ATC.DATA_TYPE,
        ATC.DATA_LENGTH,
        ATC.NULLABLE,
        ucc.comments
from
    (select ATC.OWNER,
            atC.TABLE_NAME,
            ATC.COLUMN_NAME,
            ATC.DATA_TYPE,
            ATC.DATA_LENGTH,
            ATC.NULLABLE
     from all_tab_columns ATC
     where ATC.owner ='USER' ) atc
left outer join all_col_comments ucc
             on atc.table_name=ucc.table_name and 
                atc.column_name=ucc.column_name
left outer join all_tab_comments utc
             on atc.table_name=utc.table_name
order by atc.table_name,atc.column_name
这里有个user,,查询哪个用户的表,就替换成哪个。

下面是我改之后的,就是在原来的基础上加了个条件,导出那些表的字段注释,另外拼成了可执行的sql,这样直接查询出来就可以执行了。

select c.a from (
select  'comment on column '|| atC.TABLE_NAME || '.' || ATC.COLUMN_NAME || ' is  ' || '#@#' || ucc.comments || '#@#' || ';' a
from
    (select ATC.OWNER,
            atC.TABLE_NAME,
            ATC.COLUMN_NAME,
            ATC.DATA_TYPE,
            ATC.DATA_LENGTH,
            ATC.NULLABLE
     from all_tab_columns ATC
     where ATC.owner ='TERM' ) atc
left outer join all_col_comments ucc
             on atc.table_name=ucc.table_name and 
                atc.column_name=ucc.column_name  
left outer join all_tab_comments utc
             on atc.table_name=utc.table_name
where ucc.comments is not null and atc.TABLE_NAME in(select a from acd_test)
order by atc.table_name,atc.column_name) c
group by c.a
having c.a not like '%??%'



  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值