问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求使用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
楼主去下吧,百度文库,很详细了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
茶映人生:苦尽甘来 海尔冰箱冷藏室和冷冻室都是空空的通上电工作会更耗电吗? 上菱冰箱用过7年了,1米5高有点大,我每天冰箱里面只冻半斤肉,冷藏室其它... 结婚前个人的保险结婚后转成存单是属于个人财产还是夫妻双方的财产_百 ... 六个月宝宝大便水样蛋花怎么办 宝宝拉蛋花样便怎么办 ...张仙亲送玉麒麟,一家老少皆欢喜,祖德宗功信可凭。 我见青山多妩媚,料青山见我应如是意思 料青山见我应如是的意思_百度知... 电脑导航用哪个比较好电脑用什么网址导航哪个更好用 电脑看地图哪个好电脑上的哪个地图软件好 关于oracle存储过程调用java(在线等) 在java 怎样调用oracle存储过程 在Oracle中,如何用java调用其存储过程? 二维条型码如何用手机扫描 人民币连号的能用吗? 请问人民币100元的尾数三位数连号,价值吗 百元纸币后位六连号值多少钱?6个6 连号的人民币值钱吗 什么是连号人民币 请问大家连号的百元钞票有收藏的价值吗? 什么叫连号钞 钞票编号连号的钱,是怎么回事? 连号的钞票意味着什么? 什么是钞票连号 连号钞票 钱连号是什么意思 钱币连号是什么样的 人民币的几连号几连号是什么意思啊? 什么是连号的人民币?连号的人民币能用吗? 钞票连号说明什么问题 手机怎么扫2维码 Java调用oracle的存储过程时,只能用问号指定参数么 怎样用二维手机扫二维码 JAVA调用存储过程,Oracle自定义类型作参数怎么写法 你好,请问什么二维码怎么扫? oracle如何在存储过程创建一个视图,然后在java中调用存储过程和使用视图? java程序在调用oracle的存储过程时 能不能传入一个数组 通过JDBC连接oracle数据库的几个技巧 如何使用WP手机扫描二维码? java 调用oracle存储过程 参数传递问题 404 Not Found 如果在java中调用oracle的存储过程,需要使用哪些接口? 小米手机性能掉到什么状态就可以换新的电池了 小米手机怎么换电池图标 小米手机电池不行了,如何免费换新 怎样做酸菜馅的饺子好吃 酸菜饺子怎么做才好吃? 酸菜馅饺子怎么做好吃 酸菜猪肉饺子馅的调制方法?