网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
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教程,数据库安全,数据库文摘
本月文章推荐
.Linux环境下 用XMMS听MP3.
.Oracle 11g for linux X86的SILE.
.Oracle数据库-UNDO数据.
.Redhat 9安装升级oracle 9iR2.
.在Linux下使用ISDN拨号上网.
.A little test for index.
.Oracle Spatial时态空间数据库设.
.ERwin相关概念快速入门.
.Oracle数据分片技术.
.Oracle数据库全文索引查询模板的.
.oracle数据库中sql基础.
.使用oracle pipe传递消息.
.Oracle10g中新的SQLoptimizerhin.
.查找约束条件(constraint)对应的.
.Oracle中SQL语句执行效率的查找与.
.联机热备份失败后,如何打开数据.
.Oracle容灾复制解决方案SharePlex.
.g数据库软件“Oracle8i”存在有安.
.Fravo Oracle 1Z0-032 v3.0.
.快速编译sql过程和视图的脚本.

轻松掌握jdbc操纵Oracle数据库lob字段

发表日期:2008-2-9


在Oracle数据库中,lob(large object,大型对象)类型的字段使用的频率越来越高了。因为这种类型的字段,容量大(最多能容纳4gb的数据),且一个表中可以有多个这种类型的字段,很灵活,适用于数据量非常大的业务领域(如图象、档案等)。而long、long raw等类型的字段,虽然存储容量也不小(可达2gb),但由于一个表中只能有一个这样类型的字段的限制,现在已很少使用了。 lob类型分为blob和clob两种:blob即二进制大型对象(binary large object),适用于存贮非文本的字节流数据(如程序、图象、影音等)。而clob,即字符型大型对象(character largeobject),则与字符集相关,适于存贮文本型的数据(如历史档案、大部头著作等)。 下面以程序实例说明通过jdbc操纵oracle数据库lob类型字段。 先建立如下两个测试用的数据库表,power designer pd模型如下: 建表sql语句为: create table test_clob ( id number(3), clobcol clob)
create table test_blob ( id number(3), blobcol blob) lob对象的存取 1、往数据库中插入一个新的clob对象 public static void clobinsert
(string infile) throws exception
{
/* 设定不自动提交 */
boolean defaultcommit = conn.getautocommit();
conn.setautocommit(false);
try {
/* 插入一个空的clob对象 */
stmt.executeupdate("insert into
test_clob values (’111’, empty_clob())");
/* 查询此clob对象并锁定 */
resultset rs = stmt.executequery
("select clobcol from test_clob
where id=’111’ for update");
while (rs.next()) {
/* 取出此clob对象 */
oracle.sql.clob clob = (oracle.sql.clob)rs.getclob("clobcol");
/* 向clob对象中写入数据 */
bufferedwriter out = new bufferedwriter
(clob.getcharacteroutputstream());
bufferedreader in = new bufferedreader
(new filereader(infile));
int c;
while ((c=in.read())!=-1) {
out.write(c);
}
in.close();
out.close();
}
/* 正式提交 */
conn.commit();
} catch (exception ex) {
/* 出错回滚 */
conn.rollback();
throw ex;
}
/* 恢复原提交状态 */
conn.setautocommit(defaultcommit);
} 2、修改clob对象(是在原clob对象基础上进行覆盖式的修改) public static void clobmodify
(string infile) throws exception
{
/* 设定不自动提交 */
boolean defaultcommit = conn.getautocommit();
conn.setautocommit(false);
try {
/* 查询clob对象并锁定 */
resultset rs = stmt.executequery
("select clobcol from test_clob
where id=’111’ for update");
while (rs.next()) {
/* 获取此clob对象 */
oracle.sql.clob clob =
(oracle.sql.clob)rs.getclob("clobcol");
/* 进行覆盖式修改 */
bufferedwriter out = new bufferedwriter
(clob.getcharacteroutputstream());
bufferedreader in = new bufferedreader
(new filereader(infile));
int c;
while ((c=in.read())!=-1) {
out.write(c);
}
in.close();
out.close();
}
/* 正式提交 */
conn.commit();
} catch (exception ex) {
/* 出错回滚 */
conn.rollback();
throw ex;
}
/* 恢复原提交状态 */
conn.setautocommit(defaultcommit);
}

上一篇:Oracle数据库 ASM 功能方法的说明 人气:751
下一篇:细化解析:Oracle Online Redo LogFile 人气:684
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐