數(shù)據(jù)庫(kù) oralce 9i 版本9.2.0.1.0
Server: Weblogic 814
數(shù)據(jù)庫(kù)連接方式:Hibernate3+DataSource + ConnectionPool
問題:
往數(shù)據(jù)庫(kù)中某表插入Blog對(duì)象時(shí)偶爾(并不是每次都,現(xiàn)象是第一次不出錯(cuò),之后每次都出錯(cuò))出錯(cuò),錯(cuò)誤異常:
{org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: Could not execute JDBC batch update: encountered SQLException [ORA-01483: invalid length for DATE or NUMBER bind variable]; nested exception is java.sql.BatchUpdateException: ORA-01483: invalid length for DATE or NUMBER bind variable.
java.sql.BatchUpdateException: ORA-01483: invalid length for DATE or NUMBER bind variable
原因分析:
出現(xiàn)這個(gè)問題后,使用spring提供的org.springframework.jdbc.datasource.DriverManagerDataSource連數(shù)據(jù)庫(kù)執(zhí)行相同的操作并沒有問題,由于使用的是server上配置的DataSource+ConnectionPool,數(shù)據(jù)庫(kù)驅(qū)動(dòng)的獲取是server選擇的。經(jīng)查找,server選擇的是%bea_home%/weblogic81/server/lib/ojdbc14.jar (version 10.1.0.6.0)。用類路徑里的驅(qū)動(dòng)替代,該問題不再出現(xiàn)。
解決辦法:使用version為10.1.0.4.0的ojdbc.jar代替%bea_home%/weblogic81/server/lib/ojdbc14.jar。