mysql数据导入oracle数据过程中,使用的PreparedStatement,当setString时,由于byte过大,导致发生错误:java.lang.sql:超出了该类型最大值
BD之:
1】PreparedStatement 会将string转化为byte,而oracle varchar2类型支持的最大字节数为4000
继续BD:
1】当数据长度过大时候,使用setCharsetStream(), 代替setString(),可以绕过字节数检测。
随之又出现问题:oracle.jdbc.driver.OraclePreparedStatement.setCharacterStream(ILjava/io/Reader;)V
OK,继续BD:
1】原因是jdk和oracle jar包不匹配
查找后得知:
ojdbc14.jar 适用于JDK 1.4
ojdbc5.jar: 适用于jdk5
ojdbc6.jar: 适用于jdk6
然后排查自己所用oracle的版本,OK,是11g,接着将ojdbc14.jar 替换为 ojdbc6.jar
Just Run It ! OK !
提示:jar包的选择很重要,如果有时间,最好了解一下热门版本jar的区别。
PreparedStatement.setString() PreparedStatement.setCharacterStream(),布布扣,bubuko.com
PreparedStatement.setString() PreparedStatement.setCharacterStream()
原文:http://www.cnblogs.com/MrEli/p/3599134.html