java语言操作Oracle数据库中的CLOB数据类型

2016-02-19 15:39 1 1 收藏

最近很多朋友喜欢上设计,但是大家却不知道如何去做,别担心有图老师给你解答,史上最全最棒的详细解说让你一看就懂。

【 tulaoshi.com - 编程语言 】

  字段类型:blob,clob,nclob

  说明:三种大型对象(LOB),用来保存较大的图形文件或带格式的文本文件,如Miceosoft Word文档,以及音频、视频等非文本文件,最大长度是4GB。LOB有几种类型,取决于你使用的字节的类型,Oracle 8i实实在在地将这些数据存储在数据库内部保存。可以执行读取、存储、写入等非凡操作。
  
  我们所操作的cloBTest_table中属性是(字符型id,CLOB型picstr),目前我们假设一个大的字符对象str已经包含了我们需要存入picstr字段的数据。而且connection对象conn已经建立。以下的例子程序也因为不想占用太多的空间,所以对抛出异常没有写。大家参考一下api doc。就可以知道该抛出什么异常了,此处仅仅告诉大家如何去写。
  
  代码:   
  
  (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型执行读取操作

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  *************************************************
  
  读取相对插入就很简单了。基本步骤和一半的取数据库数据没有太大的差别。
  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.tulaoshi.com/bianchengyuyan/)

来源:https://www.tulaoshi.com/n/20160219/1610119.html

延伸阅读
标签: Java JAVA基础
Java中除了二进制文件和使用文本文件外还有基于Data的数据操作,这里的Data指的是Java的基本数据类型和String。基本数据类型包括byte、int、char、long、float、double、boolean和short。 说到Java的基本数据类型必须谈到的两个类是DataInputStream和DataOutputStream。它们提供了对Java基本数据类型的操作,但是这些方法...
      每个数据库管理员都会面临数据导入的问题,这有可能发生在数据库的新老移植过程中,或者是在数据库崩溃后的恢复重建过程中,还有可能是在创建测试数据库的模拟环境过程中,总之作为一名合格的数据库管理员,你应该做好接受各种数据导入请求的技术储备,同时还要尽量满足人本能的对导入速度的苛求。本文仅针对 O...
Java与其他语言数据类型之间的转换方法实例程序 /** * 通信格式转换 * * Java和一些windows编程语言如c、c++、Delphi所写的网络程序进行通讯时,需要进行相应的转换 * 高、低字节之间的转换 * windows的字节序为低字节开头 * Linux,unix的字节序为高字节开头 * java则无论平台变化,都是高字节开头  ...
Oracle数据库数据对象中最基本的是表和视图,其他还有约束、序列、函数、存储过程、包、触发器等。对数据库的操作可以基本归结为对数据对象的操作,理解和掌握Oracle数据库对象是学习Oracle的捷径。 表和视图 Oracle中表是数据存储的基本结构。ORACLE8引入了分区表和对象表,ORACLE...
使用记录 用户可以给记录赋值、将值传递给其他程序。记录作为一种复合数据结构意味作他有两个层次可用。用户可以引用整个记录,使用select into或fetch转移所有域,也可以将整个记录传递给一个程序或将所有域的值赋给另一个记录。在更低的层次,用户可以处理记录内单独的域,用户可以给单独的域赋值或者在单独的域上运行布尔表达式,也可...

经验教程

244

收藏

79
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部