我想知道是否可以在带有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发布于 2017-10-24 18:20:00
似乎我需要使用引号,而不是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 Xhttps://stackoverflow.com/questions/46896462
复制相似问题