oracle中最常用的varcher2类型最多只能存储4000个字节的内容,一般情况下是能够满足用户的需求的。但是在一些特殊情况下(如要存储图片或者要存储的内容超过了4000个字节),varcher2就满足不了这个需求了。这个时候我们可以借助于oracle里面的大字段CLOB后者BLOB。举例如下:
首先,在数据库中建一张表news,为了简单起见,只有一个字段content(CLOB)。做好准备工作后就可以开始我们的CLOB之旅了。
以下是插入CLOB的代码:
import java.sql.*;
import java.io.*;
public class TestClob{
public void TestClob(){}
public static void main(String args[]){
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connectionconn=DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:ora32","tjpt","tjpt");
conn.setAutoCommit(false);
//第一步:插入一个空的CLOB
String sql1="insert into news(content,id) values (EMPTY_CLOB(),'1')";
PreparedStatement ps1=conn.divpareStatement(sql1);
ps1.executeUpdate();
ps1.close();
//第二步:取出该CLOB
String sql2="select content from news for update";
PreparedStatement ps2=conn.divpareStatement(sql2);
ResultSet rs2=ps2.executeQuery();
while (rs2.next()){
oracle.sql.CLOB clob=(oracle.sql.CLOB)rs2.getClob(1);
BufferedWriter out=new BufferedWriter(clob.getCharacterOutputStream());
String content="1234";//假定这是新闻的内容,当然可以也可以是其他的内容
out.write(content,0,content.length());
out.close();
}
conn.commit();
}
catch(Exception e){e.printStackTrace();}
}
}
既然插入进去了,那我们还得要检验一下:插进去的是不是你想插进去的内容?以下就是读取CLOB的代码:
import java.sql.*;
import java.io.*;
public class ReadClob{
public void ReadClob(){}
public static void main(String args[]){
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ora32","tjpt","tjpt");
String sql1="select content from news";
PreparedStatement ps1=conn.divpareStatement(sql1);
ResultSet rs1=ps1.executeQuery();
while (rs1.next()){
oracle.sql.CLOB clob=(oracle.sql.CLOB)rs1.getClob(1);
BufferedReader in=new BufferedReader(clob.getCharacterStream());
StringWriter out=new StringWriter();
int c;
while((c=in.read())!=-1){
out.write(c);
}
String content=out.toString();
System.out.println (content);//输出CLOB内容
}
}
catch(Exception e){e.printStackTrace();}
}}
分享到:
相关推荐
把oracle数据库中字段类型为clob的字段值以字符串的形式读取出来
DELPHI的CLOB和BLOB存取处理
关于在oracle数据库中读取clob大字段问题
ibatis 读取oracle clob类型
CLOB字段处理 对CLOB进行存取的例子
主要是整合了jdbc处理clob类型的增删改查方法,有需要的同学可以看下
jsp读取大对象CLOB并生成xml文件示例源代码
java读取oracle数据库中clob字段 把oracle数据库中字段类型为clob的字段值以字符串的形式读取出来
简单写的一个小工具,把图片存入oracle中,按clob和blob两种方式存储,并读取图片
spring 中对大数据的处理,包括clob,blob的数据。比之jdbc下简便很多。
好东东哦 ,我不敢一个人分享,大家来看看吧
oracle中使用jdbc读写clob字段,很多细节介绍,内容全面。
Oracle slq bolb转换Base64 CLOB
CLOB与BLOB的存储与读取,String与CLOB的想换转换,字节码文件的存储与读取等等
jsp读取大对象CLOB并生成xml文件示例.docx
今天小编就为大家分享一篇Python如何应用cx_Oracle获取oracle中的clob字段问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
本文实例简述了PHP处理Oracle的CLOB的方法。分享给大家供大家参考。具体方法如下: 1. 写入数据 在使用PDO的预处理方法时,如果使用bindParam()等而不指定字段的数据类型或使用...2. 读取数据 PDO取出的CLOB字段
用hibernate和jdbc读存blob或clob
通过jdbc读取oracle数据库的clob类型的字段转换为string类型
NULL 博文链接:https://coolzhi.iteye.com/blog/586186