关闭

运用Java如何存取Oracle中的CLOB类型字

984人阅读 评论(0) 收藏 举报

import java.sql.*;
import java.io.*;
import oracle.jdbc.driver.OracleResultSet;
import oracle.sql.CLOB;

public class TestOracleClob implements Serializable{
 public static void main(String[] args)
 { 
  //create table test (id integer,content clob);
  System.out.println("-------------------insert -----------------");
  try{
  Class.forName("oracle.jdbc.driver.OracleDriver");
  Connection con=DriverManager.getConnection("jdbc:oracle:thin:@fangm:1521:LICSFC","SFC","SFC");
  //con.setAutoCommit(false);
  //Ok 1
  String sql="insert into test values(1,empty_clob())";
  Statement stmt=con.createStatement();
  ResultSet rs=stmt.executeQuery(sql);
  String sqll="select content from test where id=1 for update";
  ResultSet rss=stmt.executeQuery(sqll);
  if(rss.next()){
   CLOB clob = ((OracleResultSet)rss).getCLOB(1);
   clob.putString(1,"ddddddddddddddddddddddddddddddddddd");
   sql="update test set content=? where id=1";
   PreparedStatement pstmt=con.prepareStatement(sql);
   pstmt.setClob(1,clob);
   pstmt.executeUpdate();
   pstmt.close();
  }
  //Ok 2
  //String sql1="insert into test values(2,empty_clob())";
  //ResultSet rs3=stmt.executeQuery(sql1);
  String sql12="insert into test values(?,?)";
  PreparedStatement pstmt1=con.prepareStatement(sql12);
  pstmt1.setInt(1,2);
  pstmt1.setClob(2,oracle.sql.CLOB.empty_lob());
  pstmt1.executeUpdate();
  String sqll2="select content from test where id=2 for update";
  ResultSet rss2=stmt.executeQuery(sqll2);
  if(rss2.next()){
   CLOB clob = ((OracleResultSet)rss2).getCLOB(1);
   clob.putString(1,"affffffffffdfdfdfdddddddffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdddfff");
   String sql1="update test set content=? where id=2";
   PreparedStatement pstmt=con.prepareStatement(sql1);
   pstmt.setClob(1,clob);
   pstmt.executeUpdate();
   pstmt.close();
  }
  //con.commit();
  rss.close();
  rss2.close();
  pstmt1.close();
  rs.close();
  stmt.close();
  con.close();
  System.out.println("-------------insert ok-------------");
  }catch(Exception e){
   System.out.println("insert:"+e);
  }
  System.out.println("-------------------query -----------------");
  try{
  String content="";
  Class.forName("oracle.jdbc.driver.OracleDriver");
  Connection con=DriverManager.getConnection("jdbc:oracle:thin:@fangm:1521:LICSFC","SFC","SFC");
  Statement stmt=con.createStatement();
  String sql="select content from test where id=1";
  ResultSet rs=stmt.executeQuery(sql);
  if(rs.next()){
   CLOB clob = ((OracleResultSet)rs).getCLOB(1);
   if(clob!=null){
   Reader is=clob.getCharacterStream();
   BufferedReader br=new BufferedReader(is);
   String s=br.readLine();
   while(s!=null){
    content+=s+",";
    s=br.readLine();
    }
   }
   
  }
  rs.close();
  stmt.close();
  con.close();
  System.out.println("clob:"+content);
  System.out.println("-------------query ok-------------");
  }catch(Exception ee){
   System.out.println("query:"+ee);
  }
  
 }
 }


0
0
查看评论

运用Java如何存取Oracle中的CLOB类型字段

这是我几年前写的文章了,一直没有发出来。今天给大家分享。大家从这个例子如手吧。这个例子,存和取都很明白了  import java.sql.*; import java.io.*; import oracle.jdbc.driver.OracleResultSet;import ...
  • etre
  • etre
  • 2003-07-20 13:15
  • 6221

Java中读取Oracle中Clob字段的两种方法

第一种:import java.io.BufferedInputStream;import java.io.IOException;import java.sql.Clob;import java.sql.SQLException; /** * 数据库处理对象 * &#...
  • xianbin
  • xianbin
  • 2006-06-13 15:59
  • 5457

编辑oracle clob数据类型的值

pl/sql工具中,要更改某行某个字段的值: 法1. 反键该表--》编辑数据。 这种方法,对于数据量少的时候,可以一眼看出来你要更改的数据,很好更改。 但是数据量大了的时候,就要用到update语句。 如果update一个clob型的数据,例如下面的allcode字段是clob型的。 u...
  • wanglilin
  • wanglilin
  • 2011-12-02 11:41
  • 3010

oracle使用java操作clob类型的字段

java插入和读取oracle中的clob类型
  • simplty
  • simplty
  • 2015-12-30 13:34
  • 1851

Oracle中如何查询CLOB字段类型的内容

Oracle中如何查询CLOB字段类型的内容 语法 select * from table_name where dbms_lob.instr(字段名(clod类型),'查询条件',1,1) > 0; 具体实例 /*查询质押单据信息*/ SELECT * FROM EDI.M...
  • xufengzhu
  • xufengzhu
  • 2017-02-15 16:52
  • 8460

对于oracle数据库中怎么查看clob类型的值

1、在Plsql里找到要看的表点编辑数据选中要找到的列右击在编辑器中打开如图所示。 2、点击进去看到就是里面存的真实值,如图所示。
  • u011897081
  • u011897081
  • 2017-08-17 16:57
  • 619

Oracle中对clob类型字段的操作

下面这篇文章说的很详细,我再做两点补充说明:        第一,LOB数据不能象其它类型数据一样直接插入(INSERT)。插入前必须先插入一个空的LOB对象,CLOB类型的空对象为EMPTY_CLOB(),BLOB类型的空对象为...
  • sdliubo
  • sdliubo
  • 2005-02-02 16:49
  • 8983

探究oracle clob字段是如何存储的

clob字段存储的是文本,如果存储少于4000个字节则clob字段会和记录存放在一起,如果存储超过4000个字节,则不会与记录存放在一起。值得注意的是,这里的4000个字节并不是等同于varchar2(4000),那相当于什么呢,请看下列实验: drop table test_clob purge;...
  • guogang83
  • guogang83
  • 2014-06-06 08:58
  • 1987

Oracle 11g中CLOB字段类型的数据读取

Oracle 11g中的CLOB字段类型的数据读取 LOB 类型的数据库列仅存储定位符,该定位符指向大型对象的存储位置.用DBMS_LOB程序包操纵 LOB 数据. 读取Oracle字段类型为CLOB列的数据时,只能读取一部分 如下图: 完整读取Oracle字段类型为CLOB列的数据 PL...
  • m0_37934173
  • m0_37934173
  • 2017-05-15 11:02
  • 1146

java处理Oracle中的clob转换成String

java处理Oracle中的clob转换成String
  • qq_18435669
  • qq_18435669
  • 2016-06-13 14:30
  • 3661
    个人资料
    • 访问:3460578次
    • 积分:30177
    • 等级:
    • 排名:第202名
    • 原创:347篇
    • 转载:561篇
    • 译文:7篇
    • 评论:344条
    艺术设计类