2017-10-09 69 views
-3

こんにちはOracleでは、私の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)であり、ストアprocによって生成された数は13桁です。最大12桁の数字が有効ですが、保存されたprocが13桁の数字を生成するとコードが失敗します。 – Rauthan

答えて

0

を実行中に、数値データを格納し、このデータは外にある場合、私は、bwlowエラーを取得しています列データ型の範囲内であれば、このタイプの例外が発生します。

例 - INTEGER(NUMBER)型の列があり、2,147,483,647より大きいデータを格納している場合、その数値オーバーフローが発生します。

+0

列のデータ型はNUMBER(18)ですが、生成される数値は13桁です。お勧めできますか? – Rauthan

関連する問題