oracle驱动还是程序有问题?

08-01-21 yuanhotel
我想问问各位大哥!

环境:

数据库:oracle 92

jdk: jdk1.4.2

oracle驱动的版本,不知道在哪里看,class12.jar里面没有MANIFEST.MF文件,哪位知道可以说一下

表:test的字段name的类型为varchar(4000);理论上可以放2000个汉字的。

我采用

con = DBHelper.getConnection();

String name="1000个汉字";

方法1:

String sqlStr="insert into test(id,name) values('1','"+name+"')";

stmt = con.prepareStatement(sqlStr);

stmt.executeUpdate();

可以准确的执行。后台没有错。

方法2:

String sqlStr="insert into test(id,name) values(?,?)";

stmt = con.prepareStatement(sqlStr);

stmt.setString(1,"2");

stmt.setString(2,info.getExtend1());

stmt.executeUpdate();

这时候就会报错。

java.sql.SQLException: 数据大小超出此类型的最大值: 3300

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)

at oracle.jdbc.ttc7.TTCItem.setArrayData(TTCItem.java:147)

at oracle.jdbc.dbaccess.DBDataSetImpl.setBytesBindItem(DBDataSetImpl.jav

a:2460)

at oracle.jdbc.driver.OraclePreparedState

lixinguo
2008-01-21 16:45
?

lixinguo
2008-01-21 16:46
?

lixinguo
2008-01-21 17:22
???

tianligen
2008-01-21 20:13
info.getExtend1()返回值类型是什么? 可能是这个返回值的长度超过了

猜你喜欢