我有一个包含一个XML列的表,并尝试在一个XML标记中求值的和。
创建的表:CREATE TABLE XML_TABLE6(XML_COL VARCHAR2(2000字节));
Insert into XML_TABLE6
(XML_COL)
Values
('<a><b>1</b><b>2</b></a>');
COMMIT;
我使用下面的SELECT语句返回数据类型为“DOUBLE”的表达式。但我收到错误“ORA-00905:缺少关键字”。
SQL查询:
从XML_Table6中选择XMLCast(XMLQuery(‘sum(a/b)’Returning Content)as Double);
预期产量:3.0
2条答案
按热度按时间rdrgkggo1#
查询中存在一些问题:
XML_passing_clause
)double
数据类型。请参阅文档中的数字数据类型。XMLCAST
函数:数据类型参数可以是数据类型NUMBER、VARCHAR2、CHAR、CLOB、BLOB、REF XMLTYPE和任何DATETIME数据类型。
在您修复此问题后,它可以正常工作:
db<>fiddle
kyvafyod2#
在Oracle中,ANSI数据类型是
double precision
,而不仅仅是double
。您还需要传入实际的列值,因为这是一个字符串,所以将其转换为XMLType:
或使用普通的
number
数据类型:或
binary_double
:db<>fiddle