Oracle 具有多名称空间的XMLQuery

Oracle 具有多名称空间的XMLQuery,oracle,qxmlquery,Oracle,Qxmlquery,使用Oracle 12c 这看起来很简单,但我必须了解如何从xml字符串中获取简单元素。下面生成一个空值,而不是2017。我已经尝试了许多不同的方法,但希望坚持使用xmlQuery而不是Extract。不确定是否需要for,但这至少会编译并产生一些结果。有没有想过我做错了什么 将stuff设置为Select xmltype' 2.16 VVVV 333333 2222222 11111111 2012-09-03 2017-04-02T20:21:34.000Z 2017-04-02 合格的生

使用Oracle 12c

这看起来很简单,但我必须了解如何从xml字符串中获取简单元素。下面生成一个空值,而不是2017。我已经尝试了许多不同的方法,但希望坚持使用xmlQuery而不是Extract。不确定是否需要for,但这至少会编译并产生一些结果。有没有想过我做错了什么

将stuff设置为Select xmltype' 2.16 VVVV 333333 2222222 11111111 2012-09-03 2017-04-02T20:21:34.000Z 2017-04-02 合格的生活改变事件 2017 5555555 联系您的姓名和其他家庭成员 符合事实的 符合事实的 符合事实的 符合事实的 999999 0 0 8888888 XXXXX YYYY 1900-10-06 错误的 符合事实的 儿子还是女儿 符合事实的 错误的 错误的 错误的 女的 符合事实的 错误的 2017-04-02 2017-04-02 收入变动 ' 来自双通道的xmlcol 选择xmlquery的xquery版本1.0; 声明名称空间ns1=http://www.YYYYY.org/SSA/Person; 对于$i in/singleStreamlinedApplicationRequest return$i/ns1:ApplicationAverageYear'PASSING stuff.xmlcol返回内容计划\u year 从东西
根元素是singleStreamlinedApplication,此元素位于命名空间xmlns中=http://www.YYYYY.org/SSA/Person. 如果不包括declare默认元素名称空间,请尝试从defult名称空间获取此元素

谢谢,这在一定程度上起了作用。它返回一个XMLType而不是字符串。我可以对该项使用where子句,并将where更改为2016 select返回空值,以便它查找2017,但不显示在结果中-select xmlquery的xquery版本1.0;声明默认元素名称空间;声明名称空间ns1=;对于$i in/singleStreamlinedApplication,其中$i/ns1:ApplicationAverageYear=2017返回$i/ns1:ApplicationAverageYear'PASSING stuff.xmlcol从stuffxmlcast xmlquery返回内容计划\u year。。作为varchar2100的演员,xmlqeury的结果非常感谢您的帮助。非常感谢。
Select xmlquery('xquery version "1.0";
declare default element namespace "http://www.YYYYY.org/SSA/Person";
declare namespace ns1="http://www.YYYYY.org/SSA/Person";
for $i in /singleStreamlinedApplication
return $i/ns1:applicationCoverageYear'
PASSING  stuff.xmlcol RETURNING CONTENT) plan_year
from stuff