在oracle中,有4个大对象(lobs)类型可用,分别是blob,clob,bfile,nclob。
blob:二进制lob,为二进制数据,最长可达4GB,存贮在数据库中。
clob:字符lob,字符数据,最长可以达到4GB,存贮在数据库中。
bfile:二进制文件;存贮在数据库之外的只读型二进制数据,最大长度由操作系统限制。
nclob:支持对字节字符集合(nultibyte characterset)的一个clob列。看着用吧!~
blob:二进制lob,为二进制数据,最长可达4GB,存贮在数据库中。
clob:字符lob,字符数据,最长可以达到4GB,存贮在数据库中。
bfile:二进制文件;存贮在数据库之外的只读型二进制数据,最大长度由操作系统限制。
nclob:支持对字节字符集合(nultibyte characterset)的一个clob列。看着用吧!~
解决方案 »
- 日期格式
- 调用window.location.href的mailto时没反应。
- 求个简单的struts标签+ajax例子
- 怎样设置apache使它支持jsp和servlet?
- 一个让我发疯的问题,莫名其妙,经验丰富的老虾请帮忙。。
- 關於Java Excel API,能否實現表格格式化.隨便散點分.
- Eclipse小发现:SAVE源文件的时候能同时进行编译
- jsp文件访问jar文件,路径问题。
- druid配置了多数据源、分布式事务 监控报错,有图,求解
- IDEA JReble
- 为什么我的JSP连接不上Oracle数据库呢???
- mysql create database user_info说找不到c:\winnt\my.ini怎么办?
下面是插入的例子
/* 插入一个空的CLOB对象 */
int i = stmt.executeUpdate(), j = 0;
stmt.close();
/* 查询此CLOB对象并锁定 */
String qqq = "select content from Information where id=" + info.getId() + " for update";
stmt = (oracle.jdbc.driver.OraclePreparedStatement)con.prepareStatement(qqq);
ResultSet rs = stmt.executeQuery(); if (rs.next()) {
/* 取出此CLOB对象 */
CLOB clob = ((OracleResultSet)rs).getCLOB("content");
/* 向CLOB对象中写入数据 */
if(info.getId()==3601L) { }
else
clob.putString(1, info.getContent());
}
rs.close();
stmt.close();
con.commit();
}
"INSERT INTO news(newsID,content) VALUES(?,empty_clob())";
private final static String SAVE_DB2 =
"SELECT content FROM news WHERE newsID=? FOR UPDATE";
Connection con = DBConnection.getConnection();
con.setAutoCommit(false);PreparedStatement pstm = con.prepareStatement(SAVE_DB);
....
pstm.executeUpdate();PreparedStatement pstm2 = con.prepareStatement(SAVE_DB2, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
pstm2.setInt(1, newsID);
rs = pstm2.executeQuery();
oracle.sql.CLOB clobContent = null;
if (rs.next())
{
clobContent = (oracle.sql.CLOB)rs.getClob(1);
}
Writer wr = clobContent.getCharacterOutputStream();
wr.write(content);
wr.flush();
wr.close();
con.commit();