oracle BLOB的insert和update 终极解决方案

以下就对HTML_INFO表的blob类型的detail操作
 
一:insert操作:
QueryRunner qr = new QueryRunner(OracleUtil.oraDs);
conn.setAutoCommit(false); //切记要把AutoCommit设置为FALSE
第一步:insert into html_info values(HTMLINFO_ID.NEXTVAL,?,''old'',empty_blob());
第二步:把detail取出来
String sqlPgList =“select detail from html_info where oldid=? FOR UPDATE ”
BLOB detailBLOG=(BLOB)qr1.query(conn2, sqlPgList, params1, new BlobResultSetHandler());
OutputStream outOS = detailBLOG.getBinaryOutputStream();
outOS.write(要插入的数据.toString().getBytes("GBK"));//设置字符集,是原来要插入的数据的字符集。
outOS.close();
第三步:update这个字段:update html_info set detail=?
 
二:update操作:
QueryRunner qr = new QueryRunner(OracleUtil.oraDs);
conn.setAutoCommit(false); //切记要把AutoCommit设置为FALSE
第一步:UPDATE html_info SET detail=EMPTY_BLOB() WHERE oldid=?//这个SQL有时候需要执行,有时候不需要执行,大家最后是加上。个人建议。。
第二步:select detail from html_info where oldid=? FOR UPDATE"
BLOB detailBLOG=(BLOB)qr2.query(conn2, sqlPgList, params1, new BlobResultSetHandler());
OutputStream outOS = detailBLOG.getBinaryOutputStream();
outOS.write(detail[0].toString().getBytes("GBK"));//设置字符集,是原来要插入的数据的字符集。
outOS.close();
第三步:update html_info set detail=? where oldid=? 
以上对BLOB的操作一定是没有问题的,相信自己!!

很抱歉,我写上出处就不让我添加了~说有不良语言~实在抱歉了~

你可能感兴趣的:(java,oracle,oracle,生活,职场,update,insert,blob,休闲)