- 浏览: 430589 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
adaylee:
貌似好久没上了
用iptables 实现本地端口转发 -
adaylee:
鲫鱼?哈哈,居然Google到你了
用iptables 实现本地端口转发 -
yflxc:
com.sun.jimi.core.raster.JimiRa ...
java对图片进行等比例缩放 -
bo_hai:
等比例压缩的算法是不是可以改进呢?
java对图片进行等比例缩放 -
Mr.TianShu:
http://www.cppblog.com/deercode ...
java 遍历目录下的文件
以下方法为 OracleDAOUtil中的方法。
1. 插入记录
private static void insert(String id, Connection connection) {
Connection conn = null;
PreparedStatement stmt = null;
String sql = "";
try {
sql = "insert into Test (ID,Value) values(?,empty_clob())"; //先插入空的CLOB对象
conn = connection;
stmt = conn.prepareStatement(sql);
int count = 0;
stmt.setString(++count, id);
stmt.execute();
OracleDAOUtil.updateField(conn, "Test", "ID", id, "Value", "abcd"); //写入数据
} catch (Exception e) {
e.printStackTrace();
throw e;
} finally {
try {
if (stmt != null) {
stmt.close();
stmt = null;
}
} catch (Exception ex) {
}
try {
if (conn != null) {
conn = null;
}
} catch (Exception ex) {
}
}
}
2. 向CLOB字段写入数据
public static void updateField(Connection conn, String tableName, String keyName, String keyValue, String fieldName, String fieldValue) throws WorkflowException
{
PreparedStatement pstmt = null;
PreparedStatement pstmt2 = null;
ResultSet rset = null;
try {
String sql = "select " + fieldName + " from " + tableName + " where " + keyName + "=? for update";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, keyValue);
rset = pstmt.executeQuery();
Clob clob = null;
if (rset.next())
clob = (Clob) rset.getClob(1);
String value = fieldValue;
if (value == null)
value = "";
char[] valueChars = new char[value.length()];
value.getChars(0,value.length(),valueChars,0);
clob.truncate(0); //避免前一次的数据混在第二次的数据中(如果上次的数据比本次的数据多的话)
Writer writer = clob.setCharacterStream(0);
writer.write(valueChars);
writer.close();
} catch (Exception e) {
throw e;
} finally {
if (rset != null) {
try {
rset.close();
rset = null;
} catch (SQLException e) {
throw e;
}
}
if (pstmt != null) {
try {
pstmt.close();
pstmt = null;
} catch (SQLException e) {
throw e;
}
}
if (pstmt2 != null) {
try {
pstmt2.close();
pstmt2 = null;
} catch (SQLException e) {
throw e;
}
}
}
}
3. 从CLOB字段读数据
public static String readField(Connection conn, String tableName, String keyName, String keyValue, String fieldName) throws WorkflowException
{
String value = "";
PreparedStatement pstmt = null;
ResultSet rset = null;
try {
String sql = "select " + fieldName + " from " + tableName + " where " + keyName + "=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, keyValue);
rset = pstmt.executeQuery();
Clob clob = null;
if (rset.next())
clob = (Clob) rset.getClob(1);
if (clob != null) {
int len = (int) clob.length();
char[] buffer = new char[len];
Reader reader = clob.getCharacterStream();
reader.read(buffer);
reader.close();
value = new String(buffer);
}
return value;
} catch (Exception e) {
throw e;
} finally {
if (rset != null) {
try {
rset.close();
rset = null;
} catch (SQLException e) {
throw e;
}
}
if (pstmt != null) {
try {
pstmt.close();
pstmt = null;
} catch (SQLException e) {
throw e;
}
}
}
}
以上方法稍作改进就可用于处理BLOB字段。
如果使用Oracle提供的JDBC驱动来处理CLOB和BLOB字段,那么使用Oracle 10g的版本,Oracle 9i的版本对CLOB和BLOB的处理有问题。Oracle 10g JDBC的thin模式也可用于Oracle 9i。
发表评论
-
ORA-01461: can bind a LONG value only for insert into a LONG column
2009-10-30 14:48 4099最近不知道怎么搞得, 好好的信息发布系统时不时的出 ... -
oracle数据类型存储结构
2009-08-02 09:01 2170目标:在oracle服务中确认 ... -
oracle dump 函数
2009-08-01 18:41 5233dump函数(number类型) 笔记 dump 函数能查看 ... -
distinct
2009-05-20 15:43 206distinct这个关键字来过滤掉多余的重复记录只保留一条,但 ... -
ORACLE to_char
2009-03-17 13:19 1256ORACLE to_char的用法 ... -
使用PL/SQL Developer导入数据
2008-12-16 23:43 3051使用PL/SQL Developer工具。 在单个文件不大的情 ... -
oracle随系统启动
2008-12-03 23:49 1035from: http://space.itpub.net/15 ... -
oracle语句优化30个规则
2008-12-03 23:19 900from:http://space.itpub.net/219 ... -
数据库优化集锦
2008-12-01 19:14 1261本文首先讨论了基于第 ... -
oracle恢复被drop掉的表
2008-11-26 19:46 1531以前只知道Windows有个回收站,今天听说Oracle也有个 ... -
oracle session
2008-11-26 17:17 18091.如何查看session级的等待事件? 当我们 ... -
oracle字符集
2008-11-25 16:59 1950一、什么是oracle字符集 ... -
oracle临时表空间为何暴涨
2008-11-19 14:38 2016昨天在做测试的时候发现一个非常奇怪的问题:在程 ... -
oracle10对clob的处理简单化了
2008-11-17 22:51 1690在oracle10g中对于大字段clob的处理简化了,可以像v ... -
sql统计相同项个数并按名次显示
2008-11-17 00:25 6570现在有如下这样一个表: A表 ID Name time --- ... -
oracle 分页sql 语句比较
2008-11-16 18:47 3931说说oracle分页的sql语句,分排序和不排序两种。 当 ... -
oracle 几个常用语句
2008-11-12 20:27 10911、复制表结构 c ... -
解决plsql中文乱码的问题
2008-11-12 19:03 5285xp 系统, plsql 中文显示乱码。 上网查找解决办法。 ... -
oracle10 ora-12154错误的解决办法
2008-11-09 23:05 92081安装好oracle10客户端,配置好网络服务名称,用enter ... -
sql的内联和外联
2008-11-08 14:09 2674假设一堆男女在教堂,有夫妇有单身的,假设男为左表,女为右表 ...
相关推荐
Mybatis 处理 CLOB、BLOB 类型数据
本文实例简述了PHP处理Oracle的CLOB的方法。分享给大家供大家参考。具体方法如下: 1. 写入数据 在使用PDO的预处理方法时,如果使用bindParam()等而不指定字段的数据类型或使用execute(),PDO都会默认为string...
最近利用NHibernate映射类型为Clob字段在插入数据时发现当字符的字节数(一个半角字符一个字节,一个全角字符两个字节)在2000-4000之间时报错(ORA-01461:仅可以插入LONG列的LONG值赋值)。经过不断查找资料和自己...
今天在项目中向数据库的CLOB属性插入一段篇文章(1000~2000)字就会报一个字符串过长的错误。 网上说用流来处理,没有这么做。这像是一个Bug,只要把插入的数据,默认扩充到2000以上就ok了。 下面是这段代码: if(...
在通过拼组sql语句来实现... 下面就此问题的解决办法,做一下小结: 我们可以通过创建单独的OracleCommand来进行指定的插入,即可获得成功,这里仅介绍插入clob类型的数据,blob与此类似,这里就不介绍了,下面介绍两
在知识库的建立的时候,用普通VARCHAR2存放文章是显然不够的,只有区区4000的字节,放不了多少字, 而CLOB数据类型,则能最多存放8G的数据。但是这个字段处理起来有比较多的特殊性,记录一下。 插入: 直接写在SQL...
一个完整的工程,主要功能为:spring+hbernate对clob、blob字段的处理 包括:数据脚本、典型的SSH框架处理,以及spring、hibernate数据批量保存等功能源码、所用到的lib包 数据环境为:oracle 10G 开发:Mycelipse5.1...
Oracle数据库出现死锁的时候可以按照以下处理步骤加以解决: 第一步:尝试在sqlplus中通过sql命令进行删除,如果能够删除成功,则万事大吉!但通常情况下,出现死锁时,想通过命令行或者通过Oracle的管理工具删除有...
oracle的jdbc驱动程序,用这个版本的操作Clob,blob类型的数据很方便。 博文链接:https://zhenjw.iteye.com/blog/173419
47. 在客户端处理Oracle的数据行加锁问题 48. 怎样查看init_ora文件 49. 怎样快速查出Oracle 数据库中的锁等待 50. 怎样在SQLPlus中使用 '&' 来实现自定义参数变量? 51. 怎样在查询记录时给记录加锁 52. 自动...
北大青鸟Oracle教程集第一章 Oracle 入门 Version 3.0 目标 理解与 Oracle 相关的 RDBMS结构 结构 掌握Oracle 数据类型 掌握 掌握数据定义语言 掌握数据操纵语言 掌握事务处理和数据控制命令 Oracle 简介 对象关系...
北大青鸟Oracle教程集第一章 Oracle 入门 Version 3.0 目标 理解与 Oracle 相关的 RDBMS结构 结构 掌握Oracle 数据类型 掌握 掌握数据定义语言 掌握数据操纵语言 掌握事务处理和数据控制命令 Oracle 简介 对象关系...
他的关注方向包括Oracle产品集,以及其他前沿技术和这些技术在优化数据仓库设计和部署的应用。他还是各种技术会议的主讲人,包括COLLABORATE、Oracle OpenWorld和其他地方与区域会议。 Michael Abbey是公认的...