Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XMLTable-xpath';空();Oracle 10g中的替代方案_Xml_Xpath_Plsql_Xml Parsing_Oracle10g - Fatal编程技术网

XMLTable-xpath';空();Oracle 10g中的替代方案

XMLTable-xpath';空();Oracle 10g中的替代方案,xml,xpath,plsql,xml-parsing,oracle10g,Xml,Xpath,Plsql,Xml Parsing,Oracle10g,在Oracle 11中,我有这样一个查询: SELECT XML_TABLE.* FROM XML_DATA, XMLTABLE('//root' PASSING XML_DATA.XML COLUMNS NAME VARCHAR2 (50) PATH '//root/name/text()', HAS_DOCUMENT NUMBER PATH 'empty(//root/document)') XML_TABLE

在Oracle 11中,我有这样一个查询:

SELECT XML_TABLE.*
  FROM XML_DATA,
       XMLTABLE('//root' PASSING XML_DATA.XML COLUMNS
                NAME VARCHAR2 (50) PATH '//root/name/text()',
                HAS_DOCUMENT NUMBER PATH 'empty(//root/document)') XML_TABLE
但是XPATH“empty(//root/document)”在10g数据库中不起作用

替代方案是什么?我尝试使用“count(//root/document)”(XPATH 1.0支持),但也不起作用

提前谢谢。

我做了一个变通办法

XML:

我承认这并不漂亮。但它奏效了

<root>
  <name>text</name>
  <document id="1">
    <other_tags></other_tags>
  </document>
</root>
SELECT XML_TABLE.NAME,
       DECODE (XML_TABLE.FIRST_ID, NULL, 0, 1) AS HAS_DOCUMENT
  FROM XML_DATA,
   XMLTABLE('//root' PASSING XML_DATA.XML COLUMNS
            NAME VARCHAR2 (50) PATH '//root/name/text()',
            FIRST_ID NUMBER PATH '//root/document[position()=1]/@id') XML_TABLE