【问题标题】: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