oraclesql:如何从分层表中获取xml
谁知道如何从上一个分层表中获取以下xml格式:oraclesql:如何从分层表中获取xml,sql,xml,oracle,hierarchical,Sql,Xml,Oracle,Hierarchical,谁知道如何从上一个分层表中获取以下xml格式: id parent_id Name Text 0 ........... body_text 1 ..........0 text....... . something 2 ..........0 blank 3 ..........2 text ........ something 4 ........... info 5 ..........4 text ......
id parent_id Name Text
0 ........... body_text
1 ..........0 text....... . something
2 ..........0 blank
3 ..........2 text ........ something
4 ........... info
5 ..........4 text ........ something
您提供的查询将给出您期望的结果。你只是有几个语法错误。第一parent\u id和id\u parent列名在查询中的id位置不同。让他们一样。第二从XmlElementEvalNameText中删除最后一个括号
<?xml version "................."?>
<body_text>
<text>something</text>
<blank>
<text>something</text>
</blank>
</body_text>
<info>
<text>some</text>
</info>
select DBMS_XMLGEN.getXML(DBMS_XMLGEN.newcontextfromhierarchy('SELECT level,
XMLElement(evalname(Name), text))
from my_table t
START WITH id_parent is null
CONNECT BY PRIOR id = parent_id'))
FROM dual
SQL> set long 300
SQL> create table t1 (id1, parent_id, Name1, Text) as(
2 select 0, null, 'body_text', null from dual union all
3 select 1, 0, 'text', 'something' from dual union all
4 select 2, 0, 'blank', null from dual union all
5 select 3, 2, 'text' , 'something' from dual union all
6 select 4, null, 'info', null from dual union all
7 select 5, 4, 'text', 'something' from dual
8 );
Table created
SQL> select DBMS_XMLGEN.getXML(DBMS_XMLGEN.newcontextfromhierarchy('SELECT level,
2 XMLElement(evalname(Name1), text)
3 from t1 t
4 start with parent_id is null
5 connect by prior id1 = parent_id')) xml
6 from dual
7 ;
xml
--------------------------------------------------------------------------------
<body_text>
<text>something</text>
<blank>
<text>something</text>
</blank>
</body_text>
<info>
<text>something</text>
</info>
SQL> select '<?xml version="1.0" ?>'
2 || chr(10)
3 || DBMS_XMLGEN.getXML(DBMS_XMLGEN.newcontextfromhierarchy('SELECT level,
4 XMLElement(evalname(Name1), text)
5 from t1 t
6 start with parent_id is null
7 connect by prior id1 = parent_id')) as xml
8 FROM dual
9 ;
XML
--------------------------------------------------------------------------------
<?xml version="1.0" ?>
<body_text>
<text>something</text>
<blank>
<text>something</text>
</blank>
</body_text>
<info>
<text>something</text>
</info>