2011-10-26 36 views
0

在Jdbc驅動程序升級後,我收到以下異常。OraclePreparedStatement的ClasscastException

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

能有所幫助嗎?

+0

哪個類是你試圖施展它?什麼時候發生?也許代碼示例? –

+0

OraclePreparedStatement vStmt = null; OracleResultSet vSet = null; ArrayList vFiles = new ArrayList (); 嘗試 { vSqlStr =「這裏有一些查詢」;vStmt =(OraclePreparedStatement)aConn.prepareStatement(vSqlStr); – Yahiya

+0

也。我們已將驅動程序從ojdbc5-11.2.0.2.0更新到ojdbc5-11.2.0.3.0 – Yahiya

回答

0

請將其分配給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的行爲就像準備好的語句的工廠。這意味着你不知道,也不應該知道這種方法調用返回哪種對象,但你知道接口。

0

這是我的Weblogic 10.3所做的與ojdbc6是提取從WebLogic連接底層Oracle連接對象,然後你可以施放的PreparedStatement的到Oracle實施:

oracle.jdbc.OracleConnection oracleConn = ((weblogic.jdbc.extensions.WLConnection) ret).getVendorConnection(); 
OraclePreparedStatement ps = (OraclePreparedStatement) conn.prepareStatement("select * from ...")); 
相關問題