oracle 如何导出数据字典

-- 查询某表的数据字典
 SELECT  A.TABLE_NAME AS "表名",A.COLUMN_NAME AS "字段名",
 DECODE(A.CHAR_LENGTH,0,DECODE(A.DATA_SCALE,NULL,A.DATA_TYPE,A.DATA_TYPE||'('||A.DATA_PRECISION||','||A.DATA_SCALE||')'),
 A.DATA_TYPE||'('||A.CHAR_LENGTH||')') as "字段类型1",A.DATA_TYPE AS "字段类型",A.DATA_PRECISION AS "有效位",A.DATA_SCALE AS "精度值",
A.CHAR_LENGTH AS "字段长度",A.NULLABLE AS "能否为空"
 FROM sys.user_tab_columns A where A.table_name = 'TAM_ADDRESS'

 
--  具有dba权限用户导出数据字典
 SELECT  A.TABLE_NAME AS "表名",A.COLUMN_NAME AS "字段名",
 DECODE(A.CHAR_LENGTH,0,DECODE(A.DATA_SCALE,NULL,A.DATA_TYPE,A.DATA_TYPE||'('||A.DATA_PRECISION||','||A.DATA_SCALE||')'),
 A.DATA_TYPE||'('||A.CHAR_LENGTH||')') as "字段类型",A.DATA_DEFAULT AS "默认值",
A.NULLABLE AS "能否为空",B.comments AS "备注"
FROM sys.all_tab_columns A,sys.DBA_COL_COMMENTS B
WHERE A.owner=B.owner AND A.table_name=B.table_name  AND A.COLUMN_NAME=B.COLUMN_NAME AND A.owner='guoqiang'  AND
A.TABLE_NAME IN (
'TB_SUBJECT', 'TB_SUBJECT_BALANCE', 'TB_VOUCHER', 'TB_VOUCHER_DETAILS', 
'TB_CUSTOMER', 'TB_VOUCHER_CLASSIFY_MODE', 'TB_VOUCHER_TYPE', 'TB_ASSET', 
'TB_ASSET_CATALOG', 'TB_M_DM_ASSETS_LIABI_RPT', 'TB_M_DM_PROFIT_RPT', 
'TB_M_DM_REVENUE_RPT', 'TB_M_DM_COST_RPT'
)
ORDER BY A.TABLE_NAME


--一般用户导出该用户下的数据字典
 SELECT  A.TABLE_NAME AS "表名",A.COLUMN_NAME AS "字段名",
 DECODE(A.CHAR_LENGTH,0,DECODE(A.DATA_SCALE,NULL,A.DATA_TYPE,A.DATA_TYPE||'('||A.DATA_PRECISION||','||A.DATA_SCALE||')'),
 A.DATA_TYPE||'('||A.CHAR_LENGTH||')') as "字段类型",A.DATA_DEFAULT AS "默认值",
A.NULLABLE AS "能否为空",B.comments AS "备注"
FROM sys.user_tab_columns A,sys.user_col_comments B
WHERE A.table_name=B.table_name  AND A.COLUMN_NAME=B.COLUMN_NAME AND
A.TABLE_NAME IN (
'TB_SUBJECT', 'TB_SUBJECT_BALANCE', 'TB_VOUCHER', 'TB_VOUCHER_DETAILS', 
'TB_CUSTOMER', 'TB_VOUCHER_CLASSIFY_MODE', 'TB_VOUCHER_TYPE', 'TB_ASSET', 
'TB_ASSET_CATALOG', 'TB_M_DM_ASSETS_LIABI_RPT', 'TB_M_DM_PROFIT_RPT', 
'TB_M_DM_REVENUE_RPT', 'TB_M_DM_COST_RPT'
)
ORDER BY A.TABLE_NAME


---4查询该用户下面所有表对应的数据字典

SELECT COL.TABLE_NAME,
       --COL.COLUMN_ID AS COLORDER,
       TT.COMMENTS,
       COL.COLUMN_NAME AS COLUMNNAME,
       CASE
         WHEN PKCOL.COLUMN_POSITION > 0 THEN
          '√'
         ELSE
          ''
       END AS ISPK,
       COL.DATA_TYPE AS TYPENAME,
       --DECODE(COL.DATA_TYPE, 'NUMBER', COL.DATA_PRECISION, COL.DATA_LENGTH) AS LENGTH,
       COL.DATA_LENGTH    占用字节数,
       COL.DATA_PRECISION AS PRECI,
       COL.DATA_SCALE     AS SCALE,
       
       CASE
         WHEN COL.NULLABLE = 'Y' THEN
          '√'
         ELSE
          ''
       END AS CISNULL,
       
       -- '' AS ISIDENTITY,
       
       COL.DATA_DEFAULT AS DEFAULTVAL,
       CCOM.COMMENTS    AS DETEXT /*,
COL.NUM_DISTINCT AS NUM_DISTINCT*/
  FROM USER_TAB_COLUMNS COL,
       USER_COL_COMMENTS CCOM,
       (SELECT AA.TABLE_NAME,
               AA.INDEX_NAME,
               AA.COLUMN_NAME,
               AA.COLUMN_POSITION
          FROM USER_IND_COLUMNS AA, USER_CONSTRAINTS BB
         WHERE BB.CONSTRAINT_TYPE = 'P'
           AND AA.TABLE_NAME = BB.TABLE_NAME
           AND AA.INDEX_NAME = BB.CONSTRAINT_NAME
        /*AND AA.TABLE_NAME IN ('AA')*/
        ) PKCOL,
       USER_TAB_COMMENTS TT
 WHERE COL.TABLE_NAME = CCOM.TABLE_NAME
   AND COL.COLUMN_NAME = CCOM.COLUMN_NAME
   AND COL.TABLE_NAME = TT.TABLE_NAME(+)
      -- AND COL.TABLE_NAME = 'AA'
   AND COL.COLUMN_NAME = PKCOL.COLUMN_NAME(+)
   AND COL.TABLE_NAME = PKCOL.TABLE_NAME(+)
 ORDER BY COL.TABLE_NAME,col.column_id

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/guoqiang1983/archive/2008/05/21/2466742.aspx

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值