返回首页> Oracle > Oracle存储过程调用java程序
跳过导航链接

Oracle存储过程调用java程序

文章摘要: Oracle存储过程调用java程序,一、描述:用Java编写了一个导入Excel数据到数据库中的程序,不过,该Java程序需要在Oracle数据库中通过存储过程的调用来执行。其中,Java程序还引用了外部包poi.jar和jdbc.jar。 二、假设: 按照 http://overloving.iteye.com/blog/1589185 中的描述安装JDK和相关环境变量设置。编...
 

Oracle存储过程调用java程序,一、描述:用Java编写了一个导入Excel数据到数据库中的程序,不过,该Java程序需要在Oracle数据库中通过存储过程的调用来执行。其中,Java程序还引用了外部包poi.jarjdbc.jar

二、假设:

按照 http://overloving.iteye.com/blog/1589185 中的描述安装JDK和相关环境变量设置。编写的Java程序的名称为ExcelOperate.javaOracle数据库中编写的的存储过程名称为TestProcJava。并且Java程序编译好:ExcelOperate.class

三、步骤:

1) 在Linux系统中创建一个目录用来存放本操作需要用到的文件:

[root@dbserv ~]# mkdir /sunjava

2) 在Linux系统中将Java程序的ExcelOperate.class文件、poi.jarojdbc.jar放到sunjava目录下:

[root@dbserv ~]# cp /home/oracle/ExcelOperate.class /sunjava

[root@dbserv ~]# cp /home/oracle/poi.jar /sunjava

[root@dbserv ~]# cp /home/oracle/jdbc.jar /sunjava

3) Linux系统中配置Java相关环境变量:

gedit 打开配置文件profile文件:

[root@dbserv ~]# gedit /etc/profile

在配置文件的最后添加(或者存在的情况下修改)如下代码:

export JAVA_HOME=/usr/java/ jdk1.6.0_32

exprot JAVA_BIN=/usr/java/ jdk1.6.0_32 /bin

export CLASSPATH=.:JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar:/sunjava/poi.jar:/sunjava/jdbc.jar/:/sunjava/

export PATH=JAVAHOME/bin:PATH

export JAVA_HOME JAVA_BIN CLASSPATH PATH

说明:在CLASSPATH增加了外部包所在的位置;最好将.class文件所在的路径也添加进去。

4)将引用的外部包jar文件复制到Oracle 的”$ORACLE_HOME/sqlj/lib”目录中:

[root@dbserv sunjava] cp poi.jar $ORACLE_HOME/sqlj/lib

[root@dbserv sunjava] cp jdbc .jar $ORACLE_HOME/sqlj/lib

4)进入 Oracle 的”$ORACLE_HOME/sqlj/lib”目录中, 通过 loadjava命令,将调用的外部包放到Oracle数据库中:

# 10gR2

loadjava -u sys/password -r -v -f -genmissing -s -grant public demo1.jar demo2.jar

# 11g

loadjava -u sys/password -r -v -f -genmissing -s -grant public demo1.jar demo2.jar

[root@dbserv lib] loadjava -u apps/apps -r -v -f -genmissing -s -grant public poi.jar jdbc.jar

5)在Oracle数据库中:

–创建数据库中的目录(将.class文件所在的物理目录映射到数据库中的目录)

CREATE OR REPLACE DIRECTORY test_dir AS ‘/sunjava’;

– 创建数据库中的Java class (将需要调用的Java class文件 映射到数据库中的Java Class

CREATE OR REPLACE JAVA CLASS USING BFILE(test_dir,’ExcelOperate.class’);

–检查是否创建成功

SELECT a.OBJECT_NAME, a.OBJECT_TYPE,a.status FROM user_objects a WHERE a.OBJECT_NAME LIKE ‘%ExcelOperate%’;

–创建调用Java程序的存储过程

CREATE OR REPLACE PROCEDURE test_java AS LANGUAGE JAVA

NAME ‘ExcelOperate.main(java.lang.String[])’;

–设置输出

SET SERVEROUTPUT ON SIZE 5000;

CALL DBMS_JAVA.SET_OUTPUT(5000);

–执行存储过程

EXECUTE test_java;

 

上一篇:Oracle RAC集群原理
下一篇:使用Oracle发送http请求
文章摘要: 使用Oracle发送http请求,实现的思路是:在某张表上配置触发器,该触发器调用存储过程,使用存储过程执行http请求的发送。 需要注意的几点是: 1、http post请求,在发送的时候,跟数据库的字符集有关,在处理不当的时候,会出现乱码问题。 2、oracle访问网络服务的时候,需要配置acl权限。 创建触发器: CREATE OR REPLACE TRIGGER “T_POST4REQHAND” AFTER INSERT ON “REQUESTHANDLERINFO” REFERENCING OLD AS ...

相关资讯

◆Oracle培训:Oracle数据泵导入dmp文件 ◆Oracle培训:Oracle手工建库出现ORA-01519错误 ◆Oracle培训:Oracle CDC部署 ◆Oracle培训:Oracle 12c创建可插拔数据库(PDB)及用户 ◆Oracle EXP和IMP使用方法介绍 ◆微软将在Office中引入人工智能 ◆微软发Surface Pro 4/Studio固件更新日志 ◆微软:AI人工智能应该帮助,而不是替代人 ◆微软推出WDATP强化企业终端威胁防护 ◆Windows申请免费SSL证书-Let's Encrypt ◆思科ASAP助力全数字化时代数据中心创新 ◆怎样选择合适的PoE交换机? ◆思科持续保持企业基础设施市场优势 ◆网络工程师需要的8项技能 ◆思科IOS中改善CLI的用户体验 ◆H3C交换机以太网端口类型 ◆H3C交换机做DHCP ◆H3C交换机常用配置命令 ◆新华三集团总裁兼首席执行官于英涛2017年会致辞 ◆新华三加速云落地 ◆RHEL7 配置VNC远程桌面 ◆RHEL7利用iso镜像制作本地yum源 ◆RHEL6 学习笔记 ◆RedHat5和RedHat6 配置yum源详解 ◆RedHat7上为Nginx编译安装nginx_push_stream_module ◆是否有必要参加PMP考试培训 ◆该怎么选择PMP培训公司 ◆企业为什么需要IT配置管理及其如何使用 ◆PMP考试心得 ◆IT资产管理与ITIL配置管理的区别和联系 ◆Juniper用户快更新:Junos OS、SRX有DoS漏洞 ◆Juniper防火墙之恢复出厂默认设置 ◆Juniper SSG双机高可用(HA)平滑升级经验分享 ◆高盛:Juniper市场表现将超过Cisco和Arista ◆Juniper收购云管理公司AppFormix ◆F5 Network:让爱点亮世界 ◆F5发布2017年应用交付状态报告 ◆除F5外,其他负载均衡软件的优缺点 ◆负载均衡的那些算法们 ◆F5配置手册:设备初始化配置 ◆Oracle培训:Oracle数据泵导入dmp文件 ◆Oracle培训:Oracle手工建库出现ORA-01519错误 ◆Oracle培训:Oracle CDC部署 ◆Oracle培训:Oracle 12c创建可插拔数据库(PDB)及用户 ◆Oracle EXP和IMP使用方法介绍 ◆VMware中CentOS 6.6的kdump启动失败解决 ◆VMware NSX升级:微细分、安全启动和支持非vSphere环境 ◆VMware虚拟化培训:虚拟化的基础知识 ◆VMware发布2016数字化工作空间现状报告 ◆VMware助力广州科政实现恒大集团打造全虚拟化数据中心 ◆戴尔EMC补丁在VMAX存储系统中出现漏洞 ◆EMC进行SAN拆分,解决更细化的存储需求 ◆EMC数据中心全闪存年,机架级闪存可让Hadoop提速10倍 ◆EMC发布2016年新品和技术路线 ◆重新定义企业IT,EMC联手VMware推超融合 ◆最近面试的大数据岗位的公司经历 ◆用大数据预测雾霾,已获得环保部订单的微软是如何做到的? ◆大数据学习经验 ◆身处大数据时代,大数据这些误区你知道吗 ◆大数据分析促进人才招聘 ◆云计算SaaS采用要考虑的5大因素 ◆如何构建一个私有存储云 ◆云计算的三大支柱 ◆云计算的真正价值不仅仅是节省开支 ◆云计算将改变我们的生活? ◆Apache Spark也有不完美 ◆Spark将机器学习与GPU加速机制纳入自身 ◆spark作业调优 ◆Spark基本工作流程及YARN cluster模式原理 ◆从Spark 2.0版的推出,看开源大数据技术的商业化发展 ◆EasyStack郭长波当选OpenStack基金董事 ◆OpenStack私有云:好处、挑战和未来 ◆在Openstack上创建并访问Kubernetes集群 ◆思科公司关闭基于OpenStack的公共云 ◆2017年OpenStack管理员认证会不会火? ◆IBM和Bell联手共同打造苹果iOS企业应用 ◆IBM首席执行官提出人工智能部署三大基本原则 ◆调研IBM与西门子:软件将是工业的未来! ◆IBM在美获专利最多 ◆IBM闪存迎接新挑战 ◆Hadoop创始人Doug Cutting寄语2017:五种让开源项目成功的方法 ◆基于Ubuntu Hadoop的群集搭建Hive ◆HDFS以及HBase动态增加和删除节点 ◆Cloudera提供课程帮助缩小数据技能差距 ◆Cloudera提供课程帮助缩小数据技能差距 ◆扩大与Azure合作,思杰力推超融合基础设施上部署VDI ◆MapReduce工作流多种实现方式 ◆Citrix虚拟化技术:XenServer6.2资源池配置 ◆Citrix虚拟化技术:XenServer6.2虚拟机创建 ◆Citrix虚拟化技术:XenServer6.2存储管理 ◆2017年十大最热IT技能:安全位列其中 ◆筑牢个人信息安全防火墙 ◆2016年最热门的六大IT职位 ◆CISP认证和CISSP认证区别 ◆成为CISSP的理由