求使用Java编写oracle的存储过程
发布网友
发布时间:2022-04-22 09:49
我来回答
共6个回答
热心网友
时间:2022-04-07 22:47
可以在PL/SQL Devlelop环境中写
用Java编写Oracle存储过程和函数
Oracle里可以使用多种语言来编写存储过程,比如Pro*C/C++,PL/SQL,COBOL,在Oracle8i开始支持用Java编写存储过程。
如果非要写存储过程的话,做为以Java谋生的我,首选用Java编写,用PL/SQL需要记忆很多的语法(Pascal类的语法)和函数,远不如使用Java/JDBC这么轻车熟路。而且,DB2等数据库都支持Java存储过程,所以不比为每一种数据学习一种编写存储过程的方法了。
Java存储过程与一般的JDBC程序有所不同的是:
1.有安全*,毕竟是在oracle内部运行的,不允许访问操作系统的资源,如文件。
2.获取数据库联接方式,connection = new OracleDriver().defaultConnection();
3.System.out,System.err,System.in等输入输出有所不同。可以利用某些命令重定向。
下面是用Java source写一个存储过程和函数的例子。
1.在plsqldeveloper里,java source里增加一个MyTest类,
代码:
create or replace and compile java source named test as
public class MyTest
{// 创建存储过程的java源代码
(执行时请将注释删除,这里本人试过所有的注释了,都不行,还没弄明白为什么不能用注释)
public static void myProc(int a,int b,int[] ret){
ret[0]=a+b;
}
// 创建函数的java源代码(执行时请将注释删除)
public static int myFunc(int a,int b){
return a+b;
}
}
/
F8执行它,以保存并编译。
2)增加一个procere和函数,执行如下命令:
代码:
'创建存储过程
CREATE OR REPLACE PROCEDURE myProc(a in number, b in number, ret out number) AS
LANGUAGE java NAME 'MyTest.myProc(int,int,int[])'; '注意MyTest.myProc是我们编写的java source的类名和方法名
/
'创建函数
CREATE OR REPLACE FUNCTION myFunc(a in number, b in number) RETURN NUMBER IS
LANGUAGE java NAME 'MyTest.myFunc(int,int) return int';
/
F8执行它,以保存并编译。
3)使用测试
‘测试存储过程用到的测试代码
set serveroutput on
DECLARE a INTEGER;
BEGIN
myProc(1, 2, a);
DBMS_OUTPUT.PUT_LINE(a);
END;
/
‘测试函数用到的测试代码
select myFunc(1,2) from al;
存储过程执行结果:
3
PL/SQL procere successfully completed
--------------------------------------------
函数执行结果
MYFUNC(1,2)
-----------
3
可以适当找些参考例子,从简单的开始,希望我的回答对你有所帮助。
参考资料:http://hero213.javaeye.com/blog/255676
热心网友
时间:2022-04-08 00:05
我怕明天起得晚,所以现在就预定第一缕阳光给你,祝你新春快乐!预定第一阵晨风给你,祝你一帆风顺!预定第一声鸟鸣,祝你心想事成! 加分吧,嘻嘻
热心网友
时间:2022-04-08 01:39
下面用 Java 存储过程写一个例子。
2.1 JavaSource
在 plsqldeveloper 里, java source 里增加一个 TestJava 类,
Java 代码
create or replace and compile java source named TestJava as
public class TestJava {
public static void test(String xm) {
System. out .println( " 姓名 :" +xm);
}
public static String message(String xm) {
return "Hello, " + xm;
}
}
create or replace and compile java source named TestJava1 as
public class TestJava1
{
public static void test()
{
System.out.println("Hello");
}
}
执行它,以保存并编译。
热心网友
时间:2022-04-08 03:31
用Java 存储过程写一个Hello World的例子。
1)在plsqldeveloper里,java source里增加一个TestJava1类,
Java代码
1.create or replace and compile java source named TestJava1 as
2.public class TestJava1
3.{
4. public static void test()
5. {
6. System.out.println("Hello");
7. }
8.}
create or replace and compile java source named TestJava1 as
public class TestJava1
{
public static void test()
{
System.out.println("Hello");
}
}
执行它,以保存并编译。
2)增加一个procere,执行如下命令:
Java代码
1.create or replace procere testJava1 as language java name 'TestJava1.test()';
create or replace procere testJava1 as language java name 'TestJava1.test()';
3)在command window里输入
Java代码
1.SET SERVEROUTPUT ON;
2.CALL dbms_java.set_output(2000);
SET SERVEROUTPUT ON;
CALL dbms_java.set_output(2000);
以使System.out重定向到当前窗口;
在command window里输入,exec testJava1();
即可看到结果:
Hello
PL/SQL procere successfully completed
热心网友
时间:2022-04-08 05:39
不了解具体要干啥。
我理解的是有一个存储过程需要转换成java代码
热心网友
时间:2022-04-08 08:03
http://wenku.baidu.com/view/1cf16d4de518964bcf847c16.html
楼主去下吧,百度文库,很详细了