2017-05-04 46 views
0

需要生成带有表和列注释列表的XML。表如何在Oralce中生成包含表和/或列COMMENT的XML?

SELECT * FROM USER_TAB_COMMENTS; -- my tables 

| TABLE_NAME | TABLE_TYPE | COMMENT  | 
----------------------------------------- 
| table_a | TABLE  | t.A comment | 
| table_b | TABLE  | t.B comment | 


SELECT * FROM USER_TAB_COMMENTS; -- my comments 

| TABLE_NAME | COLUMN_NAME | COMMENT  | 
------------------------------------------- 
| table_a | col_1  | c.A1 comment | 
| table_a | col_2  | c.A2 comment | 
| table_b | col_1  | c.B1 comment | 
| table_b | col_2  | c.B2 comment | 

XML描述,巫婆,我需要:

SELECT DBMS_METADATA.GET_XML(REPLACE(OBJECT_TYPE, ' ', '_'), OBJECT_NAME) xml 
FROM USER_OBJECTS 
WHERE OBJECT_TYPE IN ('TABLE'); 

,问题是:我怎样才能得到我的意见相当的XML?

SELECT DBMS_METADATA.GET_XML('COMMENT', TABLE_NAME) xml 
FROM USER_TAB_COMMENTS; -- doesn't work 

最好的问候和感谢您的帮助。

+0

https://asktom.oracle.com/pls/apex/f ?p = 100:11:0 :::: P11_QUESTION_ID:233014204543 –

+0

从dual中选择dbms_metadata.GET_DEPENDENT_XML('COMMENT','table_name'); S –

+0

Arkadiusz,非常感谢。您的答案与MT0的答案一样好,但更简单。 –

回答

0

为了得到一个行每个项目:

SELECT XMLELEMENT(
     "TABLE", 
     XMLFOREST(
      table_name, 
      table_type, 
      comments 
     ) 
     ).getClobVal() As xml 
FROM user_tab_comments; 

为了得到一个行与嵌套中的所有XML:

SELECT XMLELEMENT(
     "TABLES", 
     XMLAGG(
      XMLELEMENT(
      "TABLE", 
      XMLFOREST(
       table_name, 
       table_type, 
       comments 
      ) 
      ) 
     ) 
     ).getClobVal() As xml 
FROM user_tab_comments; 
+0

辉煌!谢谢 :-) –

相关问题