ClasscastException для OraclePreparedStatement - PullRequest
0 голосов
/ 26 октября 2011

Я получаю следующее исключение после обновления драйвера Jdbc.

Caused by: java.lang.ClassCastException: weblogic.jdbc.rmi.SerialPreparedStatement_weblogic_jdbc_rmi_internal_PreparedStatementStub_weblogic_jdbc_rmi_internal_PreparedStatementImpl_weblogic_jdbc_wrapper_PreparedStatement_oracle_jdbc_driver_OraclePreparedStatementWrapper_921_WLStub

Текущий Env: Weblogic 9.2.1, JDBC ojdbc5.jar

Может помочь здесь?

Ответы [ 2 ]

0 голосов
/ 13 ноября 2011

Это то, что я сделал в Weblogic 10.3 с ojdbc6 - это извлечение базового объекта соединения Oracle из Weblogic Connection, а затем вы можете привести PreparedStatement к реализации Oracle:

oracle.jdbc.OracleConnection oracleConn = ((weblogic.jdbc.extensions.WLConnection) ret).getVendorConnection();
OraclePreparedStatement ps = (OraclePreparedStatement) conn.prepareStatement("select * from ..."));
0 голосов
/ 26 октября 2011

Пожалуйста, назначьте его интерфейсу PreparedStatement вместо определенного класса (OraclePreparedStatement).

PreparedStatement vStmt = null; 
OracleResultSet vSet = null; 
ArrayList<ResourceFile> vFiles = new ArrayList<ResourceFile>(); 
try { 
   vSqlStr = "some query here"; 
   vStmt = aConn.prepareStatement(vSqlStr)
} catch (Exception e) {
...

connection.prepareStatement действует как фабрика для вашего подготовленного утверждения. Это означает, что вы не знаете и не должны знать, какой тип объекта возвращается из этого вызова метода, но вы знаете интерфейс.

...