BLOB问题
我在对一个表插入数据时,偶尔会出现“com.ibm.db2.jcc.c.SqlException: 不能使用输入主变量或参数编号 "3" 的值,原因是其数据类型方面的问题。”但多试几次就OK,不会出现问题哦。
数据库是DB2,那个字段类型是BLOB。。。不多说,看代码:
表PIC的字段类型为:VARCHAR,CHARACTER,BLOB(此长度设置为:1000000000)
String sSQLInsert ="insert into PIC (pic_id, pic_type,pic_content) values (?,?,?)";
PreparedStatement psInsertInsert =db2Conn.prepareStatement(sSQLInsert);
psInsertInsert.setString(1, sPicID);
psInsertInsert.setString(2, sPicType);
psInsertInsert.setBytes(3, sPicContent.getBytes());//sPicContent为String
问题点数:20、回复次数:4Top
1 楼jiggerli(北极企鹅)回复于 2005-04-07 08:26:35 得分 0
没有人知道是什么原因吗?Top
2 楼pw0819_wang(铭沁)回复于 2005-04-07 23:45:54 得分 0
BLOB的操作应该有三步吧,第一步是向这个字段里插入一个空的BLOB,然后再得到其游标,最后再是向里面插入数据.Top
3 楼pw0819_wang(铭沁)回复于 2005-04-07 23:49:44 得分 18
1、插入空blob
into javatest(name,content) values(?,empty_blob());
2、获得blob的cursor
select content from javatest where name= ? for update;
注意!!!必须加for update,这将锁定该行,直至该行被修改完毕,保证不产生并发冲突。
3、update javatest set content=? where name=
用cursor往数据库写数据
这个是对ORACLE的BLOB进行操作,我想原理应该一样吧,希望对你有用Top
4 楼redex(cc)回复于 2005-04-08 09:24:20 得分 2
同意: pw0819_wang(铭沁)的说法.Top




