`
accpxudajian
  • 浏览: 459908 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle数据库clob数据类型处理

阅读更多

目标:从文本文件中读取clob数据,并保存到oracle数据库中。

 

//创建文件流
BufferedReader br  = new BufferedReader(new FileReader("D:\\sq.js"));//建立一个文件读取流
String lineContent = "";//用于记录每一行内容的变量
//链接数据库
Class.forName("oracle.jdbc.driver.OracleDriver");//加载oracle数据库驱动
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "db_qb", "pw123456");

//oracle数据库JDBC链接字符串,其中:orcl是数据库实例名称,db_qb未数据库用户名,pw123456未密码
Statement st = con.createStatement();//给予数据库链接建立sql陈述对象。
System.out.println("数据库链接成功.");
con.setAutoCommit(false);//关闭自动认可模式
//循环从文本文件读出的数据
 for (int i = 0; (lineContent = br.readLine()) != null; i++) {
  //获得数据
  String str =""+lineContent;
  int f = str.indexOf("=");
  int l = str.length();
  String name =str.substring(0,f);//社区id
  String border=str.substring(f+1,l);//border
  System.out.println(name+"------"+border);
  //数据库结构 id number,border clob;
  //构造sql语句
 String insert ="update tb_gis_community  set border=empty_clob() where id='"+name+"'";//首先给border字段插入一个空的clob对象:empty_clob();(不然的话跟新失败)
 st.executeUpdate(insert);//执行更新语句
 // 锁定数据行进行更新,注意“for update”语句
 String update ="select border from tb_gis_community where id ='"+name+"' for update";//然后更新border字段为从文本文件读入的超长的clob值。
 ResultSet rs = st.executeQuery(update);//执行更新语句
 Writer outStream;//声明一个输出流
 if (rs.next()) {
  oracle.sql.CLOB clob = (oracle.sql.CLOB) rs.getClob("border");//获得数据中border的值,并强制转换为clob对象
  outStream = clob.getCharacterOutputStream();//获得clob对象的字符输出流
  String data =border;// 获得从文本文件读取的border值
  char[] c = data.toCharArray();//将border转换为字符数组
  outStream.write(c, 0, c.length);//clob的字符输出流写入字符数组
  outStream.flush();//清空
  outStream.close();//关闭输出流
 }
 }
 con.commit();//提交操作
 con.close();//关闭数据库链接

 

 

 

目标:从oracle数据库中读取clob数据

 

String sql ="select t.point_x,t.point_y,t.border as border from gis_pcs_all t where t.pcs_name='"+name+"'";
//数据库结构:point_x number(20,8) x坐标;point_Y number(20,8) y坐标;border clob gis轮廓数据;
ResultSet res = this.executeQuery(sql);//执行查询的sql语句,获得结果集对象
String[] datas = new String[3];//声明一个大小为3的字符串数组,用来盛装结果
int count =0;
try {
 if(res.next()){
  datas[0] = res.getDouble(1)+"";//x坐标
  datas[1] = res.getDouble(2)+"";//y作保
  CLOB clob = (CLOB) res.getClob("border");//gis轮廓数据 需要强制转换为club对象,但这是不能够直接使用  
  if(clob!=null){
            char[] chars = new char[(int) clob.length()];//(int)clob.length();//依据club对象大小,创建一个字符数据
            //System.out.println(clob.getLength()+":::"+clob.length());//clob.getLength()和clob.length()两个长度不一样,前者大概是后者的两倍,且前者导致方块乱码
            clob.getCharacterStream().read(chars);   //用字符数组接受clob对象的字符输出流
            String content = new String(chars);   //根据字符数据实例化字符串对象,java程序可以直接使用了
   datas[2] =( content==null?"":content+"");//
   System.out.println("clob信息:"+datas[0]+"==="+content);
   return datas;
  }else{
   System.out.println("clob为空");
   return null;
  }
 }

 

 

 

 

 

<!-- 日志内容 结束 --><!-- 日志来源 开始 --><!-- 日志来源 结束 --><!-- 日志信息 开始 -->
分享到:
评论

相关推荐

    向Oracle数据库插入Clob大段文本解决方法

    CLOB类型是Oracle数据库中用于存储大量文本数据的数据类型,它可以存储最大为4GB的文本数据。在实际应用中,当需要存储的文章、报告或者XML文档等文本信息超过常规VARCHAR2类型的限制时,CLOB便成为首选。 ### 二、...

    ORACLE中CLOB字段转String类型

    在Oracle数据库中,`CLOB`(Character Large Object)是一种用于存储大量文本数据的数据类型。由于其能够存储非常大的文本块(最大可达4GB),因此常被用于存储文章、报告或任何其他大型文本内容。然而,在处理CLOB...

    数据库中clob类型转换的问题 数据库中clob类型转换的问题

    例如,在Oracle数据库中,CLOB可以存储最大为4GB的数据;而在MySQL中,则是使用`LONGTEXT`类型来实现类似的功能。 ### CLOB类型转换需求背景 在实际应用中,由于业务需求的变化或者数据处理的需要,有时候会涉及到...

    读取oracle数据库中clob字段的值

    CLOB是一种用于存储大量字符数据的数据类型,它支持Unicode编码,并且可以存储最大达4GB的数据。与BLOB(Binary Large Object)不同的是,CLOB主要用来存储文本数据。 #### 如何读取CLOB类型的字段 在Java中,读取...

    Oracle中CLOB类型文字处理代码

    1. CLOB数据类型介绍: - CLOB类型是用来存储最大容量为4GB的单个字符数据,可以是Unicode字符集,支持多种语言。 - 它不同于VARCHAR2,后者限制在4000个字符内,对于超过这个限制的数据,CLOB是理想的选择。 2. ...

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

    CLOB是Oracle数据库用于存储大型文本数据的一种数据类型,它可以存储最大为4GB的字符数据。在处理CLOB数据时,通常会涉及到以下几种常见操作: - 插入CLOB数据 - 更新CLOB数据 - 查询CLOB数据 - 删除CLOB数据 #### ...

    Mybatis 处理 CLOB、BLOB 类型数据

    Mybatis 处理 CLOB、BLOB 类型数据 MyBatis 处理 CLOB、BLOB 类型数据是指在使用 MyBatis 框架时,如何正确地处理大字段类型的数据。CLOB(Character Large OBject)和 BLOB(Binary Large OBject)都是大字段类型...

    java中操作oracle的CLOB字段精解

    CLOB(Character Large OBject)是一种 Oracle 数据库中的数据类型,用于存储大型文本数据。CLOB 类型的字段可以存储大量的文本数据,最大可以达到 4GB。 2. 在 Java 中操作 CLOB 字段 在 Java 中操作 CLOB 字段...

    关于Oracle的 Clob数据类型在Hibernate中的应用小结

    Oracle的Clob数据类型在数据库中用于存储大对象(Large Object),如长文本、XML文档等大量字符数据。在Hibernate框架中,Clob类型的字段处理是数据库操作中的一个关键环节,尤其是在处理大量文本数据时。以下是对...

    如何将DB2数据库中的大对象(BLOB,CLOB)数据类型复制到Oracle数据库中

    Oracle数据库同样支持BLOB和CLOB数据类型,但需要特殊配置来处理来自其他数据库的大对象数据。 3. **特殊配置策略**: - **联邦能力**:利用WII的联邦功能,先将DB2中的非BLOB字段复制到Oracle目标表中。 - **...

    Oracle与.Net 数据类型映射

    了解Oracle数据库与.NET数据类型的映射关系对于开发人员来说至关重要,这直接影响到数据的正确存储、检索和处理。以下是对"Oracle与.Net 数据类型映射"这一主题的详细解释。 首先,Oracle数据库提供了一系列的数据...

    Oracle导出Clob,Blob工具

    Oracle数据库在处理大对象(LOB)类型,如Clob(Character Large Object)和Blob(Binary Large Object)时,有时需要专门的工具来进行高效且安全的数据导出。这些字段通常存储大量的文本或二进制数据,比如长篇文档...

    Oracle导出Clob,Blob工具版本2

    CLOB数据类型用于存储大量的文本数据,如XML文档或长篇文章,而BLOB则用于存储二进制大对象,如图片、音频或视频文件。在Oracle中,对这类数据的操作通常需要特定的策略和工具,因为它们的大小和性质不同于常规的...

    sql server中的image类型的数据导出到oracle的clob字段中

    在进行数据库迁移或数据交换时,需要将不同数据库管理系统之间的数据类型进行转换。在本文中,我们将讨论如何将 SQL Server 中的 Image 类型数据导出到 Oracle 的 CLOB 字段中。 Image 类型在 SQL Server 中的应用 ...

    java存储oracle中的clob类型

    本文主要介绍了在Java中处理Oracle数据库CLOB类型的基本方法,包括CLOB的读写操作、中文编码问题的处理以及一些额外的注意事项。通过这些知识点的学习,可以更高效地完成与Oracle数据库的交互任务。

    oracle数据库的clob大字段在jdbc中的处理方式

    Oracle数据库中的CLOB(Character Large Object)类型是用来存储大量字符数据的,比如长文本、XML文档等。在Java中,当我们需要通过JDBC(Java Database Connectivity)接口与Oracle数据库交互时,处理CLOB字段可能...

    oracle(blob转换为clob)

    在Oracle数据库环境中,数据类型BLOB(Binary Large Object)用于存储大量的二进制数据,如图像、音频或视频文件,而CLOB(Character Large Object)则用于存储大量文本数据。在某些情况下,可能需要将BLOB类型的...

    Delphi ADO连接Oracle数据库报数据类型不支持处理方式

    ### Delphi ADO连接Oracle数据库报数据类型不支持处理方式 在使用Delphi结合ADO(ActiveX Data Objects)技术连接Oracle数据库时,开发者可能会遇到一个常见的问题:在成功连接数据库之后进行查询操作时,系统会报...

Global site tag (gtag.js) - Google Analytics