我有一个包含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” *原因:无法使用表达式,因为它的静态类型不适合使用它的上下文。 *操作:将表达式修复为所需类型,或在表达式周围添加适当的强制转换函数。
请帮忙。
答案 0 :(得分:0)
我发现了这个问题。该列是CLOB。我需要将它转换为XML中的XMLTYPE - XMLTYPE(DATA)。
感谢