【发布时间】:2015-05-17 04:02:57
【问题描述】:
我正在尝试从存储为 Oracle db 表中 NCLOB 列的 XML 数据中提取值。
xml结构
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="http://example.com/FAS/DOC/2011/v3.0b" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<record xmlns="http://example.com/FAS/DOC/2011/v3.0b">
<pdate xmlns="http://example.com/FAS/DOC/2011/v3.0b">2014-05-15</pdate>
</record>
</root>
查询
select EXTRACTVALUE(XMLTYPE(nclob_column),'/root/record/pdate','xmlns="http://example.com/FAS/DOC/2011/v3.0b"') pdate1,
EXTRACTVALUE(XMLTYPE(nclob_column),'/root/record/pdate') pdate2
from nclob_table
问题
pdate1确实返回值,但pdate2返回 null。一世 不能使用 EXTRACTVALUE() 的第三个参数来指定 xmlns 属性值,因为它在每一行/记录上都会发生变化。所以我得到 一行的值,但所有其他行的值为 null。
如何在不指定属性的情况下提取值?
谢谢。
【问题讨论】:
标签: sql xml oracle xpath plsql