SUM和COUNT xPath表达式在Oracle 11.2中不起作用

Woj*_*usJ 5 xml sql oracle xpath plsql

我在运行一些 - 相当简单 - 在Oracle(11g R2)中包含SUMCOUNT函数的xPath查询时遇到问题.例如:

select extractvalue(
                    xmltype.createxml('<a>
                                         <b>
                                           <c>1</c>
                                           <d>XXX</d>
                                         </b>
                                         <b>
                                           <c>2</c>
                                           <d>YYY</d>
                                         </b>
                                       </a>')
                    , 'sum(/a/b/c)'
                    ) 
  from dual;
Run Code Online (Sandbox Code Playgroud)

同样的count:

select extractvalue(
                    xmltype.createxml('<a>
                                         <b>
                                           <c>1</c>
                                           <d>XXX</d>
                                         </b>
                                         <b>
                                           <c>2</c>
                                           <d>YYY</d>
                                         </b>
                                      </a>')
                   , 'count(/a/b/c)'
                   ) 
   from dual;
Run Code Online (Sandbox Code Playgroud)

我得到ORA-31012了回应.知道如何让它工作吗?或者什么是可能的解决方法?

use*_*735 3

我不记得上次使用它是什么时候了,extractvalue因为它在 11g 中已被弃用。相反,我正在使用xmlquery

这是一个简单的示例,说明如何countsum

with 
xmldata as (
  select xmltype('<a><b><c>1</c><d>TEXT1</d></b><b><c>2</c><d>TEXT2</d></b></a>') as data_ from dual
)
select 'COUNT', xmlquery('
count($doc/a/b/c)
' passing data_ as "doc" returning content) as result_
from xmldata
union all
select 'SUM', xmlquery('
sum($doc/a/b/c)
' passing data_ as "doc" returning content) as result_
from xmldata
;
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助 !