Oracle xmltable ORA-19224 : XPTY0004 - XQuery static type mismatch: expected - node()* got - xs:string

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

请帮忙。

最佳答案

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

谢谢

关于Oracle xmltable ORA-19224 : XPTY0004 - XQuery static type mismatch: expected - node()* got - xs:string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49001007/

相关文章:

linux - 以静默模式安装 Oracle 后,我无法运行 SQLPLUS

mysql - 当我尝试离线连接 Oracle 时无法对离线数据库执行命令

oracle - SQL中如何排列数据?

java - 如何从以前缀开头的表中选择值

sql - 如何在 SELECT 语句中使用 BOOLEAN 类型

java - sqlj 运行时错误

linux - 在 Ubuntu 中安装 oracle imp/exp

oracle - 如何在 Go 语言中从 Oracle(长原始格式)读取图像

oracle - 在Oracle嵌套表中查找特定的varchar

sql - 执行SQL中只存在一个