网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.Oracle和DB2的联机热备份比较.
.关于如何更新 XQuery 的具体步骤.
.一起学习在linux下使用汇编语言(.
.书写历史的甲骨文--ORACLE公司传.
.找出哪些table没有primary key.
.生成带日期的文件名.
.详细讲解Oracle数据库10g RMAN的.
.怎样查看SGA值?.
.哪些初始化参数影响Oracle系统性.
.Oracle rac安装过程详解(三).
.Win2k Server下Oracle 9iAS安装报.
.安装Oracle 10g 的艰难之旅.
.关于shared pool的深入探讨(二).
.Oracle数据库技术(22).
.pessimistic锁定对optimistic锁定.
.Oracle9i新特点:SPFILE的使用--.
.Oracle数据库性能优化技术.
.讲解Oracle数据库冷备份恢复的具.
.认识那些影响Oracle系统性能初始.
.RMAN自动备份的脚本(windows环境).

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

发表日期:2008-2-9



  字段类型: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型执行读取操作
  *************************************************
  
  读取相对插入就很简单了。基本步骤和一半的取数据库数据没有太大的差别。
  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);
   }
  }
上一篇:Oracle 有关Linux常见问题的详细解答 人气:545
下一篇:[oracle]使用Oracle10g jdbc 驱动中ConnectionCaching所产生的问题 的补充 人气:1126
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐