求使用Java编写oracle的存储过程

供稿:hz-xin.com     日期:2025-05-21
可以在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)增加一个procedure和函数,执行如下命令:
代码:
'创建存储过程
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 dual;
存储过程执行结果:
3
PL/SQL procedure successfully completed
--------------------------------------------
函数执行结果
MYFUNC(1,2)
-----------
3
可以适当找些参考例子,从简单的开始,希望我的回答对你有所帮助。

求使用Java编写oracle的存储过程
1.有安全限制,毕竟是在oracle内部运行的,不允许访问操作系统的资源,如文件。2.获取数据库联接方式,connection = new OracleDriver().defaultConnection();3.System.out,System.err,System.in等输入输出有所不同。可以利用某些命令重定向。下面是用Java source写一个存储过程和函数的例子。1.在plsql...

如何用Java实现连接Oracle
编写连接Oracle数据库的Java代码如下所示:首先定义包名:package com.zp; 接着引入必要的Java SQL包:import java.sql.*; 最后编写主方法:public class java_oracle_jdbc { public static void main(String[] args) { try { \/\/ 加载驱动 Class.forName("oracle.jdbc.driver.OracleDriver"); \/\/ ...

如何在Oracle中使用Java方法 详细??
1. 使用oracle 的sql 语句来创建: e.g. 使用create or replace and compile java source named "" as 后边跟上java 源程序。要求类的方法必须是public static 的,才能用于存储过程。 SQL> create or replace and compile java source named "javademo1" 2 as 3 import java.sql.*; 4 public...

如何在Oracle中使用Java存储过程(详解)
1. 使用oracle的sql语句来创建:e.g. 使用create or replace and compile java source named "" as 后边跟上java源程序。要求类的方法必须是public static的,才能用于存储过程。SQL> create or replace and compile java source named "javademo1" 2 as 3 import java.sql.*; 4 public class ...

java中怎么使用oracle的序列,过程和函数
JAVA中使用oracle序列 直接使用 String sql="insert into wf_hxinxi (oid,zsnumber,sortinfo,address,dateinfo)values(SEQ_SYSTEMADD.Nextval,'"+hxinxiVO.getZsnumber()+"','"+hxinxiVO.getSortinfo()+"','"+hw+"','"+hxinxiVO.getDateinfo()+"')";使用存储过程就更多,看你的传入,和...

如何使用java对oracle数据库进行增删查改?
用eclipse 首先在oracle文件下找到jdbc文件,里面的lib文件下有个class12.zip 在eclipse里新建个项目,建好后在左边右击那个项目图标,选择属性(最下面的),里面有个java build path,点进去,找到add external jars按键,点一下,把那个class12.zip加载进来,然后可以开始写代码了。我的代码如下:import ...

java应用程序操作oracle数据库的问题
import java.sql.*;public class TextOracle_AddTemplate { public static void main(String ags[]){ add();} public static void add(){ Connection ct = null;\/\/与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果 PreparedStatement ps = null;\/\/表示预编译的 SQL 语句的对象...

在java 中写oracle的sql是:insert into A values(?,?); 然后绑定变量...
db2也可以这么写。。。这个其实是通用sql支持的,但是不建议这么做,维护和查看程序逻辑不方便。建议这样写 INSERT INTO 表名(列1,列2,...) VALUES(?,?,...)

如何在ORACLE中使用JAVA存储过程
比如下面写的是Oracle的一个存储过程:create or replace procedure queryempinfo(eno in number,pename out varchar2,psal out number,pjob out varchar2)as begin --得到该员工的姓名 月薪和职位 select ename, sal, job into pename, psal, pjob from emp where empno = eno;end;Java调用...

如何在Oracle中使用Java存储过程
1. 使用oracle的sql语句来创建:e.g. 使用create or replace and compile java source named "<name>" as 后边跟上java源程序。要求类的方法必须是public static的,才能用于存储过程。SQL> create or replace and compile java source named "javademo1" as import java.sql.*; public class ...