Oracle xmltable ORA-19224:XPTY0004 - XQuery静态类型不匹配:expected - node()* got - xs:string

时间:2018-02-27 04:13:04

标签: oracle

我有一个包含XML数据的表。不能使用真实姓名。

<properties>
<property>
    <string>KEY1</string>
    <string>A</string>
</property>
<property>
    <string>KEY2</string>
    <string>B</string>
</property>
<property>
    <string>KEY3</string>
    <string>C</string>
</property>
<property>
    <string>KEY4</string>
    <string>D</string>
</property><properties>

表 - TESTDATA 列 - 数据

我正在尝试以下sql:

select xt.*
from TESTDATA,
xmltable('/properties/property'
passing DATA
columns KEY varchar2(100) PATH 'string[1]',
VALUE varchar2(100) PATH 'string[2]'
) xt
;

我收到以下错误:

ORA-19224:XPTY0004 - XQuery静态类型不匹配:预期 - node()* got - xs:string 19224. 00000 - “XPTY0004 - XQuery静态类型不匹配:预期 - %s得到 - %s” *原因:无法使用表达式,因为它的静态类型不适合使用它的上下文。 *操作:将表达式修复为所需类型,或在表达式周围添加适当的强制转换函数。

请帮忙。

1 个答案:

答案 0 :(得分:0)

我发现了这个问题。该列是CLOB。我需要将它转换为XML中的XMLTYPE - XMLTYPE(DATA)。

感谢