New versions: Dev (3.15) | Latest (3.14)

XMLQUERY

Applies to ✅ Open Source Edition   ✅ Express Edition   ✅ Professional Edition   ✅ Enterprise Edition

The XMLQUERY() allows for extracting content from an XML document using XQuery or XPath

SELECT xmlquery('/doc/x'
  PASSING xmlparse(DOCUMENT '<doc><x>content</x></doc>')
  RETURNING CONTENT
)
FROM dual
create.select(xmlquery("/doc/x")
        .passing(
            XML.xml("<doc><x>content</x></doc>")
        ))
      .fetch();

The result would look like this:

+----------+
| xmlquery |
+----------+
| content  |
+----------+

Dialect support

This example using jOOQ:

xmlquery("/doc/x").passing(XML.xml("<doc><x>content</x></doc>"))

Translates to the following dialect specific expressions:

-- DB2
xmlquery('/doc/x' PASSING '<doc><x>content</x></doc>')

-- ORACLE
xmlquery('/doc/x' PASSING '<doc><x>content</x></doc>' RETURNING CONTENT)

-- POSTGRES
(SELECT xmlagg(x) FROM UNNEST(xpath('/doc/x', '<doc><x>content</x></doc>')) AS t (x))

-- ACCESS, ASE, AURORA_MYSQL, AURORA_POSTGRES, COCKROACHDB, DERBY, FIREBIRD, H2, HANA, HSQLDB, INFORMIX, INGRES, MARIADB, 
-- MEMSQL, MYSQL, REDSHIFT, SQLDATAWAREHOUSE, SQLITE, SQLSERVER, SYBASE, TERADATA, VERTICA
/* UNSUPPORTED */

(These are currently generated with jOOQ 3.15, see #10141)

Feedback

Do you have any feedback about this page? We'd love to hear it!

The jOOQ Logo