0

我创建了一个表

Movie ( title varchar2(40), review XMLTYPE)

并且评论有:`

<review>
<reviewer>...</reviewer>
<title> ....</title>
<rating>.....</rating> </Review> </reviewer>

当我尝试访问时:

SELECT X.reviewername FROM movie m, XMLTABLE ('for $d in /reviews/review 
return $d' 
PASSING OBJECT_VALUE
columns 
reviewername VARCHAR2(50) PATH 'reviewer') AS X

我在 OBJECT_VALUE 处收到错误消息。我哪里错了?

编辑:我将查询更改为

SELECT m.title,
warehouse2.*
FROM movie M,
XMLTABLE('/REVIEW'
  PASSING m.reviews
  COLUMNS 
     "Rail" varchar2(60) PATH '//RATING') 
  warehouse2;

但是没有行被选中。有什么建议么?

4

1 回答 1

0

一方面,您没有错字:'/reviews/review' 吗?您的示例中的任何地方都没有调用任何元素。

您的 XML 格式不正确,标签重叠,评论/评论不匹配(XML 区分大小写),并且在查询中您有评论/评论,但您的 xml 有 /review(最后没有 s)。–

于 2014-06-24T16:27:22.817 回答