oracle驅動還是程式有問題?

yuanhotel發表於2008-01-21
我想問問各位大哥!
環境:
資料庫: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

相關文章