2017-10-09 20 views
-3

你好我收到bwlow錯誤,同時運行我的JAVA代碼的Java JDBC:java.sql.SQLException中:由造成數字溢出

Caused by: java.sql.SQLException: Numeric Overflow 
at oracle.jdbc.driver.NumberCommonAccessor.throwOverflow(NumberCommonAccessor.java:4380) ~[ojdbc-11.2.0.2.0.jar:11.2.0.2.0] 
at oracle.jdbc.driver.NumberCommonAccessor.getInt(NumberCommonAccessor.java:111) ~[ojdbc-11.2.0.2.0.jar:11.2.0.2.0] 
at oracle.jdbc.driver.NumberCommonAccessor.getObject(NumberCommonAccessor.java:3263) ~[ojdbc-11.2.0.2.0.jar:11.2.0.2.0] 
at oracle.jdbc.driver.T4CVarnumAccessor.getObject(T4CVarnumAccessor.java:303) ~[ojdbc-11.2.0.2.0.jar:11.2.0.2.0] 
at oracle.jdbc.driver.OracleCallableStatement.getObject(OracleCallableStatement.java:2049) ~[ojdbc-11.2.0.2.0.jar:11.2.0.2.0] 
at oracle.jdbc.driver.OracleCallableStatementWrapper.getObject(OracleCallableStatementWrapper.java:815) ~[ojdbc-11.2.0.2.0.jar:11.2.0.2.0] 
+1

看起來像你的數字是一個int大。使用一個長而不是 – Jens

+0

請張貼您的代碼 –

+0

感謝您的建議。已在outputMapper中使用Long。 DB列是Number(18),存儲過程生成的數字是13位數字。最多12位數字的工作,但是當存儲過程開始產生13位數字的代碼是失敗的。 – Rauthan

回答

0

在Oracle中,如果存儲數字數據,這數據超出範圍從列數據類型,那麼你有這種類型的異常。

示例 - 如果您有一列INTEGER(NUMBER)類型,並且您存儲的數據大於2,147,483,647,則其數值溢出。

+0

列數據類型爲NUMBER(18),而生成的數字爲13位數字。請您建議? – Rauthan