【问题标题】:How to use conditional statements in XMLTABLE如何在 XMLTABLE 中使用条件语句
【发布时间】:2018-04-04 10:06:04
【问题描述】:

我想知道是否可以在带有 XPATH 的 Oracle XMLTABLE 结构中使用 if 或条件语句。出于设计原因,我仅限于在 XMLTABLE 中使用 xpath。我在 XQUERY 中使用过 if 语句,过去运行良好。

这是我想要实现的一个示例

SELECT X.* 
FROM emp, 
XMLTABLE ('*:Foo/*[contains(name(), "example")]' passing doc as "d" 
   COLUMNS
   Y varchar2(4000) PATH 'if (/*:Hotel) then ''Hotel'' else if (/*:Hostel) then ''HOSTEL'' else null' 
) AS X

这是我收到的错误消息:

ORA-19109: RETURNING keyword expected
19109. 00000 -  "RETURNING keyword expected"
*Cause:    The keyword RETURNING was missing.
*Action:   Specify the RETURNING keyword.
Error at Line: 24 Column: 69

【问题讨论】:

    标签: xml oracle xpath xmltable


    【解决方案1】:

    看来我需要使用引号而不是 2 个单撇号,所以现在这是正确的方法:

    SELECT X.* 
    FROM emp, 
    XMLTABLE ('*:Foo/*[contains(name(), "example")]' passing doc as "d" 
       COLUMNS
       Y varchar2(4000) PATH 'if (/*:Hotel) then "Hotel" else if (/*:Hostel) then "HOSTEL" else null' 
    ) AS X
    

    【讨论】:

      猜你喜欢
      • 2011-06-21
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      • 2017-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多