My Oracle Support Banner

ClassCastException With Oracle JDBC Driver When Getting XMLTYPE Column Value (Doc ID 1305209.1)

Last updated on MARCH 30, 2019

Applies to:

JDBC - Version to [Release 11.2]
Information in this document applies to any platform.


When getting XMLTYPE column value as an oracle.xdb.XMLType object,
with the version of  Oracle JDBC driver, the following exception is thrown:

java.lang.ClassCastException: oracle.jdbc.driver.OracleSQLXML cannot be cast to oracle.xdb.XMLType

To illustrate this problem, the warehouse_spec XMLTYPE column is defined and filled as the following:

CREATE TABLE warehouses(
warehouse_id NUMBER(4),
warehouse_spec XMLTYPE,
warehouse_name VARCHAR2(35),
location_id NUMBER(4));

'<Warehouse whNo="100">

In order to fetch the  XMLTYPE column value, the following code is executed:

import oracle.xdb.XMLType;
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select warehouse_spec from warehouses");
Object o_xml = rs.getObject(1);
XMLType xmltype = (XMLType)o_xml; // here : with driver ClassCastException
System.out.println(" xmltype value = " + xmltype.getStringVal());

The problem (ClassCastException is thrown)  is happening with Oracle JDBC driver:

java.lang.ClassCastException: oracle.jdbc.driver.OracleSQLXML cannot be cast to
at TestMLType.test(
at TestMLType.main(

Executing this code against the JDBC driver, the XMTYPE column value can be obtained:

java TestMLType
DriverVersion: []
DriverMajorVersion: [11]
DriverMinorVersion: [2]
DriverName: [Oracle JDBC driver]
URL: [jdbc:oracle:thin:@localhost:<PORT>:<SID>]
UserName: [<USER>]
Oracle Database 11g Enterprise Edition Release - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
The JDK version is 1.6.0_22
xmltype value = <Warehouse whNo="100">

JDK 6 version is used, and,the CLASSPATH contains the ojdbc6.jar (Oracle JDBC driver, OH/jdbc/lib directory ), xdb.jar (XDB product, OH/RDBMS/jlib directory) and xmlparserv2.jar (XDK product, OH/lib directory) libraries. (OH stands for the  Oracle Home database server directory).


To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!

In this Document

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.