Oracle数据字典导出表和列以及注释

Oracle数据字典导出表和列以及注释

导出表名表注释、列名列注释

--导出表名表注释、列名列注释
SELECT
  CLN.TABLE_NAME  AS "表名",
  TC.COMMENTS     AS "表名注释",
  CLN.COLUMN_NAME AS "列名",
  CMT.COMMENTS    AS "列注释"
FROM USER_TAB_COLUMNS cln
  LEFT JOIN USER_TAB_COMMENTS TC ON cmt.TABLE_NAME = TC.TABLE_NAME
  LEFT JOIN USER_COL_COMMENTS cmt ON cln.TABLE_NAME = cmt.TABLE_NAME
                                     AND cln.COLUMN_NAME = cmt.COLUMN_NAME
WHERE cln.TABLE_NAME LIKE '%表名关键字%';

介绍数据字典

提到数据字典,其实还有动态性能视图。请参考Oracle官方文档:

Data Dictionary and Dynamic Performance Views

https://docs.oracle.com/cd/E11882_01/server.112/e40540/datadict.htm#CNCPT002

数据字典包含基本表和视图以及表的字段、索引、分区等信息。只有Oracle才有权限修改数据字典。用户只能查询。

数据字典表一般有着三种前缀:

DBA_ 管理员可以访问的对象

ALL_ 所有当前用户可以访问的对象

USER_ 当前用户的对象

DICTIONARY是一个视图,可以查询到所有的数据字典表。

SQL> SELECT * FROM DICTIONARY
  2  ORDER BY TABLE_NAME;

TABLE_NAME                     COMMENTS
------------------------------ ----------------------------------------
ALL_ALL_TABLES                 Description of all object and relational
                               tables accessible to the user
 
ALL_APPLY                      Details about each apply process that
                               dequeues from the queue visible to the
                               current user
.
.
.

上面例子中用的的三个表:

USER_TAB_COLUMNS 用户的表和列

USER_TAB_COMMENTS 用户的表注释

USER_COL_COMMENTS 用户的列注释

所有的数据字典请看这里:Catalog Views / Data Dictionary Views
https://docs.oracle.com/cd/E11882_01/nav/catalog_views.htm#index-ALL

关于 动态性能视图 举个简单的例子就明白是什么了

select * from V$NLS_PARAMETERS;

智力题:

一个经理有三个女儿,三个女儿的年龄加起来等于13,三个女儿的年龄乘起来等于经理自己的年龄,有一个下属已知道经理的年龄,但仍不能确定经理三个女儿的年龄,这时经理说只有一个女儿的头发是黑的,然后这个下属就知道了经理三个女儿的年龄。请问三个女儿的年龄分别是多少?为什么?

关注“鬼马双星”公众号,回复“年龄”获得答案

Oracle数据字典导出表和列以及注释_第1张图片
鬼马双星

你可能感兴趣的:(Oracle数据字典导出表和列以及注释)