Wednesday, December 12, 2007

No XQuery for Oracle Database Express Edition (XE)

I like to use Oracle's small-footprint database, Oracle Database 10g Express Edition, for many of my development, testing, and publication source code preparation efforts. For example, the Express Edition Database was used in development of source code samples for the Oracle Technology Network (OTN) articles Accessorize Oracle Database with Ruby and Visualize Your Oracle Database Data with JFreeChart.

As documented in the article Oracle Database 10g Express Edition: Not Just for Learners, the main limitations of Oracle Database 10g Express Edition (XE) are often not problematic for development and small business production environments. These limitations include memory, CPU, and disk space limitations as well as a restriction on the number of XE database instances that can run on a single machine and no internal Java Virtual Machine (JVM).

While XE provides general Oracle XML DB support, it does not have its own internal JVM and so cannot support many of the XQuery functions. When trying to use the XMLQuery() SQL function on an XQuery expression, an error message like the following occurs:

ORA-19114: error during parsing the XQuery expression:
PLS-00201: identifier 'SYS.DBMS_XQUERYINT' must be declared

An Oracle online forum entry confirms that XQuery support is not available in Oracle Database 10g XE. This entry explains why lack of support for an internal JVM negatively impacts XE's ability to support XQuery. Another confirmation of lack of internal Java support (and hence lack of XQuery support) in XE is present in a Laurent Schneider blog entry.

Perhaps the best source of information on what Oracle Database XE supports and doesn't support is its licensing documentation. The Oracle Database Express Edition Licensing Information 10g Release 2 (10.2) features Table 2.2 ("Application Development, Language, and Database Features") that indicates that the XE database does NOT support several features related to the information above. Specifically, this table states there is "no Java support in the database," "no Java Server Pages," and "no Java native compilation." Perhaps most importantly for this blog entry, Table 2.2 also says regarding "XML support in the database": "Yes (no XQuery...)". Finally, it is also worth noting that Database XE 10g Release 2 does not support "Database web services" according to this table.

1 comment:

Hold-tube said...

Is there anyway to make it wokrs?