Oracle Function调用java代码
2009-11-05 16:29
302 查看
原文传送门:http://www.blogjava.net/improviser/archive/2008/12/07/244911.html
在前一篇文章中简单介绍了JAVA程序如何调用Oracle存储过程的基本语法程序结构, 本文将介绍JAVA跟Oracle的另一种关系,即通过JAVA编写Oracle存储过程。 通常情况下,我们都是使用Oracle数据库系统中的ps/sql语句来为oracle编写各种存储过程,不过,在Oracle的第八个版本8之后,为我们提供了编写存储过程的另一种新的选择,那就是使用JAVA来编写Oracle存储过程。从Oracle8.0版本开始,在Oracle数据库系统中自带了java虚拟机jvm,因此使得Oracle内置了对JAVA的全面支持,我们在使用JAVA可以实现的任何功能现在都可以放到Oracle中来实现,当然我们也可以在oracle中来操作其他数据库。JAVA的加入让Oracle展能力得到了升华,我们可以定义一个触发器来在进行任何数据库操作的时候对外界进行其他操作的功能。
下面准备举个例子来说明下如何通过JAVA来创建Oracle存储过程,例子不在于有多高级,功能不在于多完善,我想,如果能从一个简单例子,引申出去,去繁衍更多的方法,去实现更多你自己需要的功能,这才是简单例子的作用。所以,认为我写的简单,写的肤浅的人你可以不用看,但是我写出来就是为了让任何有JAVA基础的人都能容易懂得,而从简单的例子去构造出其他的应用。个人认为,中国软件界更需要有的程序员素质,就是能更多帮助那些初学者,让他们少走弯路,才能让我国的IT行业有更好的发展,对那些将初学者的问题拒之千里之外的程序员的做法,在此表示遗憾....
当然,以上是题外话,但是希望能引起大家的思考,,,,能引起在我博客话我发的内容简单的人的反思。。。
二、使用JAVA创建Oracle存储过程
先看下如何使用JAVA来编写Oracle存储过程,我们在Oracle的sql plus中编写语句。
Ⅰ、启动SQL PLUS
Ⅱ、编写JAVA类,定义JAVA类别名,本存储过程为简单地输出传入参数的平方值。
create or replace and compile java source named "PF" as
/**
*通过JAVA类来 创建Oracle存储过程
*
**/
package org.oraclejava.pro;
public class javaCreatePro
{
public static String test( int num)
{
return num+ "的平方为: " +num*num;
}
}
Ⅲ、将JAVA类中的方法test创建为一个Oracle函数方法
create or replace function PF_FUN(name integer) return varchar2 as language java name 'org.oraclejava.pro.javaCreatePro.test(java.lang.Integer) return java.lang.String';
Ⅳ、在控制台直接调用创建的Oracle函数
select PF_FUN(10) from dual;
Ⅴ、输出结果
10的平方为:100
以上即是在Oracle中的SQL PLUS中使用JAVA程序来产生Oracle存储过程的演示例子,演示了其基本语法的实现跟简单的功能实现,可以看出在JAVA跟Oracle之间存在很多有趣的用法,因为oracle中有java虚拟机,使得Oracle变得更加有趣更加丰富多彩。
在前一篇文章中简单介绍了JAVA程序如何调用Oracle存储过程的基本语法程序结构, 本文将介绍JAVA跟Oracle的另一种关系,即通过JAVA编写Oracle存储过程。 通常情况下,我们都是使用Oracle数据库系统中的ps/sql语句来为oracle编写各种存储过程,不过,在Oracle的第八个版本8之后,为我们提供了编写存储过程的另一种新的选择,那就是使用JAVA来编写Oracle存储过程。从Oracle8.0版本开始,在Oracle数据库系统中自带了java虚拟机jvm,因此使得Oracle内置了对JAVA的全面支持,我们在使用JAVA可以实现的任何功能现在都可以放到Oracle中来实现,当然我们也可以在oracle中来操作其他数据库。JAVA的加入让Oracle展能力得到了升华,我们可以定义一个触发器来在进行任何数据库操作的时候对外界进行其他操作的功能。
下面准备举个例子来说明下如何通过JAVA来创建Oracle存储过程,例子不在于有多高级,功能不在于多完善,我想,如果能从一个简单例子,引申出去,去繁衍更多的方法,去实现更多你自己需要的功能,这才是简单例子的作用。所以,认为我写的简单,写的肤浅的人你可以不用看,但是我写出来就是为了让任何有JAVA基础的人都能容易懂得,而从简单的例子去构造出其他的应用。个人认为,中国软件界更需要有的程序员素质,就是能更多帮助那些初学者,让他们少走弯路,才能让我国的IT行业有更好的发展,对那些将初学者的问题拒之千里之外的程序员的做法,在此表示遗憾....
当然,以上是题外话,但是希望能引起大家的思考,,,,能引起在我博客话我发的内容简单的人的反思。。。
二、使用JAVA创建Oracle存储过程
先看下如何使用JAVA来编写Oracle存储过程,我们在Oracle的sql plus中编写语句。
Ⅰ、启动SQL PLUS
Ⅱ、编写JAVA类,定义JAVA类别名,本存储过程为简单地输出传入参数的平方值。
create or replace and compile java source named "PF" as
/**
*通过JAVA类来 创建Oracle存储过程
*
**/
package org.oraclejava.pro;
public class javaCreatePro
{
public static String test( int num)
{
return num+ "的平方为: " +num*num;
}
}
Ⅲ、将JAVA类中的方法test创建为一个Oracle函数方法
create or replace function PF_FUN(name integer) return varchar2 as language java name 'org.oraclejava.pro.javaCreatePro.test(java.lang.Integer) return java.lang.String';
Ⅳ、在控制台直接调用创建的Oracle函数
select PF_FUN(10) from dual;
Ⅴ、输出结果
10的平方为:100
以上即是在Oracle中的SQL PLUS中使用JAVA程序来产生Oracle存储过程的演示例子,演示了其基本语法的实现跟简单的功能实现,可以看出在JAVA跟Oracle之间存在很多有趣的用法,因为oracle中有java虚拟机,使得Oracle变得更加有趣更加丰富多彩。
相关文章推荐
- Sql Server的存储过程与Java代码相连接调用(一)
- cocos2dx 之 android java 与 c++ 互相调用 代码(以百度定位为例子)
- JAVA用JNI方法调用C代码实现HelloWorld
- 编写存储过程返回的结果集在游标中使用java代码调用
- JNI技术实践(1) Java调用C/C++代码
- java_调用第三方系统时的连接代码
- C#调用java代码
- Java一行代码调用Webservice
- java代码获知该方法被哪个类、哪个方法、在哪一行调用
- jar打包成dll(C#调用java代码)
- QT Android 调用JAVA代码
- Cocos2d-x中通过JNI进行C++调用Java代码 JniHelper类的使用
- 使用ecilpse(Java)调用Matlab代码
- 入门: 使用JNI 从C++代码中调用Java的静态方法
- java实现调用打印机代码详解
- Android的JS调用Java代码或使用了Javascript相关技术,混淆问题
- Cocos2dx 通过Java代码调用C++
- zk框架实现zul的js代码调用服务器java命令
- Java代码调用存储过程和存储方法
- Android NDK(JNI)学习总结一:Java代码中申明native函数-Java调用C函数,并在C函数中访问java类和方法、属性