My Oracle Support Banner

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

Last updated on MARCH 30, 2019

Applies to:

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

Symptoms

When getting XMLTYPE column value as an oracle.xdb.XMLType object,
with the version 11.2.0.2 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));

INSERT INTO warehouses VALUES (
100,
XMLType(
'<Warehouse whNo="100">
<Building>Owned</Building>
</Warehouse>'));
/



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 11.2.0.2 driver ClassCastException
System.out.println(" xmltype value = " + xmltype.getStringVal());



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

java.lang.ClassCastException: oracle.jdbc.driver.OracleSQLXML cannot be cast to
oracle.xdb.XMLType
at TestMLType.test(TestMLType.java:88)
at TestMLType.main(TestMLType.java:135)



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

java TestMLType
DriverVersion: [11.2.0.1.0]
DriverMajorVersion: [11]
DriverMinorVersion: [2]
DriverName: [Oracle JDBC driver]
URL: [jdbc:oracle:thin:@localhost:<PORT>:<SID>]
UserName: [<USER>]
Oracle
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 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">
<Building>Owned</Building>
</Warehouse>


JDK 6 version is used, and,the CLASSPATH contains the 11.2.0.2 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 11.2.0.2 database server directory).



Cause

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
Symptoms
Cause
Solution
References

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