B LOB

本文详细介绍了如何使用Java进行CLOB类型的插入与读取操作,并利用DBMS_LOB包验证插入内容。具体步骤包括创建CLOB对象、写入数据、提交事务及通过SQL查询验证。

B LOB和CLOB操作基本是一样的。

(1)对数据库clob型执行插入操作     
  *************************************************     
      
  java.sql.PreparedStatement   pstmt   =   null;     
  ResultSet   rs   =   null;     
  String   query   =   "";     
      
  conn.setAutoCommit(false);     
                query   =   "insert   into   clobtest_table(id,picstr)   values(?,empty_clob())";     
  java.sql.PreparedStatement   pstmt   =   conn.prepareStatement(query);     
  pstmt.setString(1,"001";     
  pstmt.executeUpdate();     
  pstmt   =   null     
                query   =   "select   picstr   from   clobtest_table   where   id   =   '001'   for   update";     
  pstmt   =   con.prepareStatement(query)     
  rs=   pstmt.executeQuery();     
      
  oracle.sql.CLOB   clobtt   =   null;     
  if(rs.next()){     
          clobtt   =   (oracle.sql.CLOB)rs.getClob(1);     
  }     
  Writer   wr   =   clobtt.getCharacterOutputStream();     
  wr.write(strtmp);     
  wr.flush();     
  wr.close();     
  rs.close();     
  con.commit();     
      
      
      
  (2)通过sql/plus查询是否已经成功插入数据库     
  *************************************************     
      
  PL/SQL的包DBMS_LOB来处理LOB数据。察看刚才的插入是否成功。使用DBMS_LOB包的getlength这个procedure来检测是否已经将str存入到picstr字段中了。如:     
      
  SQL>   select   dbms_lob.getlength(picstr)   from   clobtest_table;     
      
      
  (3)对数据库clob型执行读取操作     
  *************************************************     
      
  读取相对插入就很简单了。基本步骤和一半的取数据库数据没有太大的差别。     
  String   description   =   ""     
              query   =   "select   picstr   from   clobtest_table   where   id   =   '001'";     
  pstmt   =   con.prepareStatement(query);     
  ResultSet   result   =   pstmt.executeQuery();     
  if(result.next()){     
          oracle.jdbc.driver.OracleResultSet   ors   =       
                              (oracle.jdbc.driver.OracleResultSet)result;     
          oracle.sql.CLOB   clobtmp   =   (oracle.sql.CLOB)   ors.getClob(1);     
      
          if(clobtmp==null   ||   clobtmp.length()==0){     
                  System.out.println("======CLOB对象为空   ";     
                  description   =   "";     
          }else{     
                  description=clobtmp.getSubString((long)1,(int)clobtmp.length());     
                  System.out.println("======字符串形式   "+description);     
          }     
  }

转载于:https://www.cnblogs.com/muise/p/3847405.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值