首 页 行业资讯 新车 试驾评测 养车用车 车型库

求使用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/1cf16d4de51bcf847c16.html
楼主去下吧,百度文库,很详细了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com