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ドライバのダウンロードパッケージを提供します.
  • ojdbc 14_9 i_.jar
  • ojdbc 14_10 g_.jar
  • ojdbc 6_11 g_.jar
  • データベースの現在のバージョンを表示します.
    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"
    ----------------------------------------------------------------------------------------------------