我用的是sun.jdbc.odbc.JdbcOdbcDriver驱动,
       String sqlstr = "INSERT INTO mp_report_volume (ipcc_code, volume_name,"+
                       "start_date, end_date, mpflow_code) VALUES ('"+pContractNumber+"', ?, ?, ?, ?)";       con.setAutoCommit(false);//关闭自动提交
       pre = con.prepareStatement(sqlstr);//声明执行
       //设置参数
       pre.setString(1,hashtable.get(KEYDefine.VOLUME_NAME).toString());
       pre.setDate(2,Date.valueOf(hashtable.get(KEYDefine.START_DATE).toString()));
       pre.setDate(3,Date.valueOf(hashtable.get(KEYDefine.END_DATE).toString()));
       pre.setString(4,hashtable.get(KEYDefine.FLOW_NUMBER).toString());
       pre.executeUpdate();
由于字段ipcc_code 内容比较多,我把它的数据类型由文本 250改为备注类型。但是保存的内容还是做了截取。
如 当ipcc_code对应的参数pContractNumber内容为:500个字符的内容(01CDEFGHIJ02CDEFGHIJ03CDEFGHIJ04CDEFGHIJ05CDEFGHIJ06CDEFGHIJ
07CDEFGHIJ08CDEFGHIJ09CDEFGHIJ10CDEFGHIJ11CDEFGHIJ12CDEFGHIJ13CDEFGHIJ14CDEFGHIJ15CDEFGHIJ16CDEFGHIJ
17CDEFGHIJ18CDEFGHIJ19CDEFGHIJ20CDEFGHIJ21CDEFGHIJ22CDEFGHIJ23CDEFGHIJ24CDEFGHIJ25CDEFGHIJ26CDEFGHIJ
27CDEFGHIJ28CDEFGHIJ29CDEFGHIJ30CDEFGHIJ31CDEFGHIJ32CDEFGHIJ33CDEFGHIJ34CDEFGHIJ35CDEFGHIJ36CDEFGHIJ
37CDEFGHIJ38CDEFGHIJ39CDEFGHIJ40CDEFGHIJ41CDEFGHIJ42CDEFGHIJ43CDEFGHIJ44CDEFGHIJ45CDEFGHIJ46CDEFGHIJ
47CDEFGHIJ48CDEFGHIJ49CDEFGHIJ50CDEFGHIJ)
执行完这段sql后存到数据库却为352个字符
01CDEFGHIJ02CDEFGHIJ03CDEFGHIJ04CDEFGHIJ05CDEFGHIJ06CDEFGHIJ07CDEFGHIJ08CDEFGHIJ
09CDEFGHIJ10CDEFGHIJ11CDEFGHIJ12CDEFGHIJ13CDEFGHIJ14CDEFGHIJ15CDEFGHIJ16CDEFGHIJ17CDEFGHIJ18CDEFGHIJ19CDEFGHIJ
20CDEFGHIJ21CDEFGHIJ22CDEFGHIJ23CDEFGHIJ24CDEFGHIJ25CDEFGHIJ26CDEFGHIJ27CDEFGHIJ28CDEFGHIJ29CDEFGHIJ30CDEFGHIJ
31CDEFGHIJ32CDEFGHIJ33CDEFGHIJ34CDEFGHIJ35CDEFGHIJ36
,后面的148个字符全部截取掉了。当pContractNumber为391个字符时,数据库只保存了348个字符。
不知道为什么?请您不吝赐教