ORA-01483:invalid length for DATE or NUMBER bind variable
blog移行先:
http://www.micmiu.com
記録作業における問題解決の点滴は、初めて同じ問題に遭遇したXDに助けを与えたい.
[環境情報]
開発環境
OS:Windows Vista
DB:Oracle 11 g
ネットワーク環境
OS:Windows Server 2008
DB:Oracle 9 i
異常が発生したフィールド属性:名前:remark タイプ:varrhar 2(4000)
[エラー現象]
remarkフィールドに約1000文字以上の文字を入力すると、現在のネット環境はエラーとなり、開発環境は正常で、具体的なエラー情報は以下の通りです.
JDBCExceptionReporter - SQL Error: 1483, SQLState: 72000
JDBCExceptionReporter - ORA-01483: invalid length for DATE or NUMBER bind variable
AbstractFlushingEventListener - Could not synchronize database state with session
org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
Caused by: java.sql.BatchUpdateException: ORA-01483: invalid length for DATE or NUMBER bind variable
at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:343)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10720)
at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:294)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:246)
... 48 more
[ソリューション]オンラインで資料を検索してテストして検証したところ、oracleの駆動ojdbcxx.jarカバンは現在のデータベースと一致しないため、駆動カバンを交換すれば解決できます.具体的に対応するパッケージはoracleインストールディレクトリ内のjdbc\libで現在バージョンのojdbcxx.jarパッケージを見つけることができます.添付ファイルは各バージョンoracleのojdbcドライバのダウンロードパッケージを提供します.
select * from v$version;
ojdbcxx.jarのバージョン情報を調べます.解凍ソフトはojdbcxx.jarを開いて、META-INF/MANIFEST.MFを見つけました.具体的な内容は以下の通りです.oracle 11 gのojbc 6.jarにおけるMANIFEST.MF情報は以下の通りです.
Manifest-Version: 1.0
Implementation-Vendor: Oracle Corporation
Implementation-Title: ojdbc6.jar
Implementation-Version: Oracle JDBC Driver version - "11.1.0.7.0-Produ
ction"
Implementation-Time: Wed Sep 17 16:40:39 2008
Specification-Vendor: Oracle Corporation
Sealed: true
Created-By: 1.6.0 (Sun Microsystems Inc.)
Specification-Title: Oracle JDBC driver classes for use with JDK6
Specification-Version: Oracle JDBC Driver version - "11.1.0.7.0-Produc
tion"
Main-Class: oracle.jdbc.OracleDriver
oracle 10 gのojbc 14.jarにおけるMANIFEST.MFの情報は以下の通りです.Manifest-Version: 1.0
Specification-Title: Oracle JDBC driver classes for use with JDK14
Sealed: true
Created-By: 1.4.2_08 (Sun Microsystems Inc.)
Implementation-Title: ojdbc14.jar
Specification-Vendor: Oracle Corporation
Specification-Version: Oracle JDBC Driver version - "10.2.0.3.0"
Implementation-Version: Oracle JDBC Driver version - "10.2.0.3.0"
Implementation-Vendor: Oracle Corporation
Implementation-Time: Fri Sep 29 09:43:24 2006
oracle 9 iのojbc 14.jarにおけるMANIFEST.MFの情報は以下の通りです.Manifest-Version: 1.0
Specification-Title: "Oracle JDBC driver classes for use with JDK1.4"
Specification-Version: "Oracle JDBC Driver version - 9.0.2.0.0"
Specification-Vendor: "Oracle Corporation" .
Implementation-Title: "ojdbc14.jar"
Implementation-Version: "Oracle JDBC Driver version - 9.0.2.0.0"
Implementation-Vendor: "Oracle Corporation"
Implementation-Time: "Thu Apr 25 23:14:02 2002"
----------------------------------------------------------------------------------------------------