根据要求,最初的单纯使用oracle发送和接收mail被抛弃(上一篇文章描述了具体实现),转而要求使用oracle调用java,并通过javamail来实现mail的相关处里。这里问题就出现了,我编写过java,我编写过pl/sql,但是,从来没听说过使用oracle来调用java。同事没有一个作过的。不过,后来察看了相关资料,才知道,这个技术还确实有。于是做如下的相关记录。
我要做的第一个是把我之前编好的一个压缩功能java类和其需要的jar包文件加载到oracle中,并使其能够被成功调用。如何压缩文件,稍后处理。我们先说如何加载java类和jar包到oracle。
首先,压缩功能需要的环境配置:
1、操作系统需要拥有支持loadjava命令的jdk。
2、加载jlha.jar包,到oracle数据库中。
操作过程:在dos环境下,输入命令: loadjava -r -f -o -user usscares/usscares@usscares jlha.jar
这个命令就是oracle加载 jlha.jar包的命令。
编写好需要的,负责压缩的类:Directoryzip
在其源文件头插入一行: create or replace and compile java source named directoryzip as
并执行在数据库command window中,则导入数据库。
既然已经成功导入类到oracle中,那么接下来就是编写函数,使得oracle能够调用此类中的代码:
create or replace function zipblob (returnBLob BLOB,inBlob BLOB,filename VARCHAR2) return BLOB
as language java name
' jp.co.uss.cares.common.DirectoryZip.zip(oracle.sql.BLOB,oracle.sql.BLOB,java.lang.String) return oracle.sql.BLOB ' ;
/
然后就可以编写测试程序,在oralce控制台进行测试:declare
pBlob blob; --原始数据
rBlob blob; --压缩后的数据
typrow uss_row;
begin
select d0030
into pBlob
from dewey.cysct0291
where d0020 = '300'
;
rBlob := empty_blob();
delete from dewey.cysct0291 where d0010 = 'tst';
insert into dewey.cysct0291 values('tst','100',rBlob,'','','','');
select d0030 into rBlob from dewey.cysct0291 where d0010 = 'tst' for update;
--rBlob := zipblob(rBLob,pBlob,'200806251906.pdf');
rBlob := zipListToBlob(rBLob,'1,2,3,4,54'||chr(13)||chr(10)||'2,2,3,4,54','200806251906.csv');
commit;
end;
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/heartsky189/archive/2009/10/23/4716415.aspx
分享到:
相关推荐
提供oracle调用java包的方式,提供oracle调用java包的方式
你还在为如何调用oracle中的存储过程和函数而烦恼吗,请看看该文档。
个人亲测oracle触发器调用java程序
oracle insert数据成功之后调用触发器,触发器调用存储过程,存储实时调用java http
描述了如何对Oracle数据库进行设置,并给出了利用Oracle数据库调用编译完成的Java类的方法
oracle掉用memcached,得用oracle调用java,java调用memcached
Oracle Developer forms 调用java
Oracle后台存储过程中调用Java代码块,以此来访问异构数据库数据(DB2)。 此方式适用场景: 原有业务逻辑均在后台实现,现要加入对异构数据库的数据访问或写入。 异构数据库的访问,多用数据联邦、透明网关或自行...
java调用oracle存储过程或者函数
提供JAVA调用ORACLE存储过程通用类
Java调用oracle函数返回oracle类(类似)集合
NULL 博文链接:https://fengshayage.iteye.com/blog/695964
使用Java来扩展存储程序是一种很流行的方法。在使用Java类库处理数据的过程中,PL/SQL是必不可少的一环,这是因为PL/SQL 封装了Java类库的数据访问,即任何Java存储对象访问的数据都必须经过PL/SQL。
Java调用oracle存储过程
NULL 博文链接:https://softwarexiang120.iteye.com/blog/773557
oracle完整引入jar包和编译java类,实现数据库级别的函数的调用
JAVA中调用Oracle存储过程 JAVA中调用Oracle存储过程 JAVA中调用Oracle存储过程 JAVA中调用Oracle存储过程 JAVA中调用Oracle存储过程
java调用oracle bpm API
基本查询 过滤和排序 单行函数 组函数 多表查询 子查询 集合运算 创建和管理表 光标 例外 Java调用存储过程和存储函数 触发器