关于oracle中blob字段的录入问题

在oracle中,有4个大对象(lobs)类型可用,分别是blob,clob,bfile,nclob。
  下面是对lob数据类型的简单介绍。
   blob:二进制lob,为二进制数据,最长可达4GB,存贮在数据库中。
   clob:字符lob,字符数据,最长可以达到4GB,存贮在数据库中。
   bfile:二进制文件;存贮在数据库之外的只读型二进制数据,最大长度由操作系统限制。
   nclob:支持对字节字符集合(nultibyte characterset)的一个clob列。
   对于在其他不同的开发环境,例如vc,vb,pb,java等环境下对lob的处理,处理方法不尽相同,在这里将举用jdbc处理lob的例子
  String strSQL = "Insert Into BKS_XSZPXX(XH,ZPLXM,ZP) Values('3071801040','1',empty_blob())";
  updateTable1(strSQL,conn);
  conn.setAutoCommit(false);
  strSQL = "Select ZP from BKS_XSZPXX where XH='3071801040' For Update";
  
  Statement stmt = null;
  ResultSet rs = null;
  stmt = conn.createStatement();
  rs = stmt.executeQuery(strSQL);

  rs.next();
  BLOB blob = (BLOB) rs.getBlob("ZP");
  OutputStream os = blob.getBinaryOutputStream();// 建立输出流
  BufferedOutputStream output = new BufferedOutputStream(os);
  BufferedInputStream input = new BufferedInputStream(new File("F:/3071801040.jpg").toURL().openStream());
  byte[] buff = new byte[2048000];  //用做文件写入的缓冲
  int bytesRead;
  while(-1 != (bytesRead = input.read(buff, 0, buff.length)))
  {
     output.write(buff, 0, bytesRead);
     //System.out.println(bytesRead);
  }

  output.close();
  input.close();
  rs.close();
  conn.commit();
  conn.setAutoCommit(true);
  stmt.close();
  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值