【发布时间】:2015-10-18 15:21:59
【问题描述】:
我有一个以下格式的 XML,存储在 oracle 数据库中的 XMLType 列中
<a>
<c>1</c>
<c>2</c>
</a>
我需要把它转换成表格格式
c
1
2
知道如何使用 SQL 来做到这一点吗?
【问题讨论】:
我有一个以下格式的 XML,存储在 oracle 数据库中的 XMLType 列中
<a>
<c>1</c>
<c>2</c>
</a>
我需要把它转换成表格格式
c
1
2
知道如何使用 SQL 来做到这一点吗?
【问题讨论】:
这个url有答案。
例如用户 daggett 是这样做的:
select *
FROM XMLTABLE('/person/row'
PASSING
xmltype('
<person>
<row>
<name>Tom</name>
<Address>
<State>California</State>
<City>Los angeles</City>
</Address>
</row>
<row>
<name>Jim</name>
<Address>
<State>California</State>
<City>Los angeles</City>
</Address>
</row>
</person>
')
COLUMNS
--describe columns and path to them:
name varchar2(20) PATH './name',
state varchar2(20) PATH './Address/State',
city varchar2(20) PATH './Address/City'
) xmlt
;
【讨论】:
with data as
(select '<a><c>1</c><c>2</c></a>' xmlval
from dual)
( select c
from data d,
xmltable('/a/*' passing xmltype(d.xmlval)
columns
c varchar2(254) path '/c'
))
【讨论】:
谢谢,成功了。
pISLEMLER CLOB;
select *
FROM XMLTABLE('/mydata/UCRET'
PASSING
xmltype('<mydata>'||pISLEMLER||'</mydata>
')
COLUMNS
--describe columns and path to them:
F_M_IS_ID varchar2(20) PATH './FMISID',
ISKONTO varchar2(20) PATH 'ISK'
) xmlt;
【讨论】: