1. 程式人生 > >Mybatis呼叫儲存過程出現NullPointerException錯誤

Mybatis呼叫儲存過程出現NullPointerException錯誤

今天在寫程式碼,用MyBatis呼叫Oracle儲存過程,總是丟擲下面的異常。

Caused by: java.lang.NullPointerException 

 at oracle.jdbc.driver.T4C8Oall.getNumRows(T4C8Oall.java:870) 

 at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:960) 

 at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168) 

 at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285) 

 at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3390) 

 at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4223) 

 at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:168) 

因為之前做過調查,但當時呼叫的是一個輸出引數的儲存過程。

最後發現,在MyBatis傳送儲存過程給oracle時,對格式不做任何改動!

而oracle對傳送的格式有要求的。

如下格式,Oracle 會報錯!

{

call EXT_XXX(?,?,?)

}

如果寫成一行的話,就沒問題了!

{call EXT_XXX(?,?,?)}