【问题标题】:How to get comments for table & column from oracle DB from its metadata?如何从 oracle DB 的元数据中获取表和列的注释?
【发布时间】:2019-11-16 15:43:31
【问题描述】:

我正在开发一个 Java 应用程序。我已使用 JDBC Connection 连接到 Oracle DB 并获取它的元数据。我从其元数据中获取表、列、视图等信息。

现在我想从元数据中分别获取应用程序中表和列的注释。 如何获取这些详细信息?

【问题讨论】:

标签: oracle metadata database-metadata


【解决方案1】:

现在我想从元数据中分别获取应用程序中表和列的注释。如何获取这些详细信息?

对于table cmets,使用[DBA|ALL|USER]_TAB_COMMENTS 视图。

例子:

SQL> SELECT table_name,
  2    comments
  3  FROM dba_tab_comments
  4  WHERE owner   ='OE'
  5  AND table_name='INVENTORIES';

TABLE_NAME  COMMENTS
----------- ---------------------------------------------------------------
INVENTORIES Tracks availability of products by product_it and warehouse_id.

对于column cmets,使用[DBA|ALL|USER]_COL_COMMENTS 视图。

SQL> SELECT table_name,
  2    column_name,
  3    comments
  4  FROM dba_col_comments
  5  WHERE owner   ='OE'
  6  AND table_name='INVENTORIES';

TABLE_NAME  COLUMN_NAME          COMMENTS
----------- -------------------- ----------------------------------------------------------------------------
INVENTORIES PRODUCT_ID           Part of concatenated primary key, references product_information.product_id.
INVENTORIES WAREHOUSE_ID         Part of concatenated primary key, references warehouses.warehouse_id.
INVENTORIES QUANTITY_ON_HAND

【讨论】:

    【解决方案2】:
    SELECT *
      FROM user_tab_comments;
    
    SELECT *
      FROM user_col_comments;
    

    您也可以使用 all|dba 前缀代替 user。

    【讨论】:

      【解决方案3】:

      试试 dbms_metadata 包。有了它,您可以从 db 中提取 cmets、grants 和其他内容。 SELECT DBMS_METADATA.GET_DEPENDENT_DDL('COMMENT','TABLE_NAME','SCHEMA') FROM DUAL

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-14
        • 1970-01-01
        • 1970-01-01
        • 2011-10-18
        • 1970-01-01
        • 2011-04-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多