在Oracle中使用XQuery

use*_*330 2 sql oracle xquery

我正在尝试使用XQuery从Oracle数据库检索信息。桌子customer看起来像

---id---last_name---
   1    Smith
   2    Jackson
   3    Peters
Run Code Online (Sandbox Code Playgroud)

我想要所有姓氏
这是我的代码:

select last_name, XMLQuery(
'for $i in /customer
return $i/last_name'
PASSING BY VALUE customer
RETURNING CONTENT) last_name
FROM customer;
Run Code Online (Sandbox Code Playgroud)

它说,%s: invalid identifier这行有一个:PASSING BY VALUE customer

Eri*_*ist 5

如果我理解正确,则希望使用XQuery查询纯关系数据。

在这种情况下,您可以使用ora:view之类的东西:

SELECT XMLQuery('
    for $customer in ora:view("customer")/ROW
       return $customer/LAST_NAME
' RETURNING CONTENT) FROM DUAL;
Run Code Online (Sandbox Code Playgroud)

应该可以。