1. java调用ORACLE存储过程

给你个方法,自己参研吧。
private static final String DELETE_ENTRIES_BY_DATE_RANGE_SPNAME = "";

public int deleteByDateRange(Date start, Date end) {
// get connection
Connection conn = getConnection();
try {
// set auto commit false
conn.setAutoCommit(false);
// retrieve callableStatement by
CallableStatement cs = prepareCallableStatement(conn,
);
cs.setString("application_name", applicationName);
cs.setString("mole_name", moleName);
cs.setDate("startDate", Util.convUtilDateToSqlDate(start));
cs.setDate("endDate", Util.convUtilDateToSqlDate(end));

cs.registerOutParameter("deleted_rows", java.sql.Types.INTEGER);

cs.execute();

int affectedRows = cs.getInt("deleted_rows");
// transaction commit
conn.commit();
// close cs
cs.close();

return affectedRows;

2. 如何在Oracle中使用Java存储过程

给你一个简单的例子(其实自己搜索:数据库 java存储过程 就可以了)
使用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"
2 as
3 import java.sql.*;
4 public class JavaDemo1
5 {
6 public static void main(String[] argv)
7 {
8 System.out.println("hello, java demo1");
9 }
10 }
11 /
Java 已创建。
SQL> show errors java source "javademo1"
没有错误。
SQL> create or replace procere javademo1
2 as
3 language java name 'JavaDemo1.main(java.lang.String[])';
4 /
过程已创建。
SQL> set serveroutput on
SQL> call javademo1();
调用完成。
SQL> call dbms_java.set_output(5000);
调用完成。
SQL> call javademo1();
hello, java demo1
调用完成。
SQL> call javademo1();
hello, java demo1
调用完成。

3. 关于oracle存储过程调用java(在线等)

1、创抄建或者代替已有的目录。袭目录名为test_dir,路径为d:\的目录;
2、使用bfile来创建或者代替目录test_dir下的TEST.CLASS的java的类文件
3、查询object_name,object_type,STATUS这三个字段在 user_objects里的数据
4、用java语言调用名称为'TEST.main(java.lang.String[])'来创建或者代替已有的存储过程test_java

其实就是:首先创建一个目录test_dir,路径d:\,然后就在目录名为test_dir下生成test.class(类似于JAVAC这样)然后就创建test_java存储过程,把test.class里面的内容放到到test_java存储过程里面

个人理解,如有误,欢迎指出。

4. 在java中怎么调用oracle的存储过程

java下实现调用oracle的存储过程和函数
在oracle下创建一个test的账户,然后按一下步骤执行:
1.创建表:STOCK_PRICES

--创建表格
CREATE TABLE STOCK_PRICES(
RIC VARCHAR(6) PRIMARY KEY,
PRICE NUMBER(7,2),
UPDATED DATE );

2.插入测试数据:

--插入数据
INSERT INTO stock_prices values('1111',1.0,SYSDATE);
INSERT INTO stock_prices values('1112',2.0,SYSDATE);
INSERT INTO stock_prices values('1113',3.0,SYSDATE);
INSERT INTO stock_prices values('1114',4.0,SYSDATE);

3.建立一个返回游标: PKG_PUB_UTILS

--建立一个返回游标
CREATE OR REPLACE PACKAGE PKG_PUB_UTILS IS
--动态游标
TYPE REFCURSOR IS REF CURSOR;
END PKG_PUB_UTILS;

4.创建和存储过程:P_GET_PRICE

--创建存储过程
CREATE OR REPLACE PROCEDURE P_GET_PRICE
(
AN_O_RET_CODE OUT NUMBER,
AC_O_RET_MSG OUT VARCHAR2,
CUR_RET OUT PKG_PUB_UTILS.REFCURSOR,
AN_I_PRICE IN NUMBER
)
IS
BEGIN
AN_O_RET_CODE := 0;
AC_O_RET_MSG := '操作成功';

OPEN CUR_RET FOR
SELECT * FROM STOCK_PRICES WHERE PRICE<AN_I_PRICE;
EXCEPTION
WHEN OTHERS THEN
AN_O_RET_CODE := -1;
AC_O_RET_MSG := '错误代码:' || SQLCODE || CHR(13) || '错误信息:' || SQLERRM;
END P_GET_PRICE;

5.创建函数:

--创建函数:F_GET_PRICE
CREATE OR REPLACE FUNCTION F_GET_PRICE(v_price IN NUMBER)
RETURN PKG_PUB_UTILS.REFCURSOR
AS
stock_cursor PKG_PUB_UTILS.REFCURSOR;
BEGIN
OPEN stock_cursor FOR
SELECT * FROM stock_prices WHERE price < v_price;
RETURN stock_cursor;

5. 在Oracle中,如何用java调用其存储过程

//通过编写的连接类创建一个连接
dbconn db = new dbconn();
Connection con1 = db.conn;
String callSQL1 = new String();
ResultSet rs1 = null;
//创建一个CallableStatement变量st1来调用存储过程信息
CallableStatement st1 = null;
try {
st1 = con1.prepareCall("{ call p(?,?,?,?) }");

st1.setString(1, "参数1");
st1.setString(2, "参数2");
st1.setString(3, "参数3");
st1.registerOutParameter(4,Types.INTEGER); //此处4 代表第一个"?" 则表示存储过程返回的值 这里要注意Types的类型,当需要有返回值时

st1.execute();
System.out.println(st1.getInt(4));//输出存储过程的返回值,当有返回值时
} catch (Exception error) {
try {
con1.rollback(); //操作不成功则回退
} catch (Exception ex9) {
ex9.printStackTrace();
}
out.print("系统出错" + error.getMessage());
} finally {
try {
if (st1 != null) {
st1.close();
}
} catch (Exception error) {

}
db.disconnect();
}

给你提供一个参考,希望楼主点赞。

6. 如何在ORACLE中使用JAVA存储过程

比如下面写的是Oracle的一个存储过程:
create or replace procere 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的存储过程
try {
Class.forName(driverName);
conn = DriverManager.getConnection(url, username, password);
stat = conn.prepareCall(sql);

// 一个输入参数和三个输出参数
stat.setInt(1, 7566);
stat.registerOutParameter(2, OracleTypes.VARCHAR);
stat.registerOutParameter(3, OracleTypes.NUMBER);
stat.registerOutParameter(4, OracleTypes.VARCHAR);
stat.execute();

String name = stat.getString(2);
int sal = stat.getInt(3);
String job = stat.getString(4);

System.out.println("name: " + name + ", sal: " + sal + ", job: " + job);

} catch (Exception e) {
e.printStackTrace();
} finally {
close(conn, stat, rs);
}

7. 怎么在java代码中设置oracle存储过程中的入参和出参

public String insertJCSP(Map parmaters) {
// TODO Auto-generated method stub
String str=null;
Connection conn = null;
CallableStatement csm = null;
conn = (Connection) sqlSession.getSqlSessionFactory().openSession()
.getConnection();
try {
csm = conn
.prepareCall("{Call pr_insert_JcInfo(?,?,?)}"); //调用存储过程
csm.setString(1, (String) parmaters.get("lottId")); //第一个入参数
csm.setString(2, (String) parmaters.get("idata"));//第二个入参数
csm.registerOutParameter(3, java.sql.Types.VARCHAR);//返回参数
csm.execute();
str = csm.getString(3); //取得返回参数

8. Oracle存储过程中,如何像JAVA那样,将一段代码用try{}cache(e){}包起来

说实话我没在存储过程中写过异常处理,所以没法给出处理代码
我找到了两篇博客讲的oracle存储过程中的异常处理,希望对你有用
http://blog.csdn.net/jojo52013145/article/details/6585833
http://www.cnblogs.com/linjiqin/archive/2011/04/18/2019905.html

9. oracle存储过程怎么和java代码

2、什么时候需要用存储过程
如果服务器定义了存储过程,应当根据需要决定是否要用存储过程。存储过程通常是一些经常要执行的任务,这些任务往往是针对大量的记录而进行的。在服务器上执行存储过程,可以改善应用程序的性能。这是因为:
.服务器往往具有强大的计算能力和速度。
.避免把大量的数据下载到客户端,减少网络上的传输量。
例如,假设一个应用程序需要计算一个数据,这个数据需要涉及到许多记录。如果不使用存储过程的话,把这些数据下载到客户端,导致网络上的流量剧增。
不仅如此,客户端可能是一台老掉牙的计算机,它的运算速度很慢。而改用存储过程后,服务器会很快地把数据计算出来,并且只需传递一个数据给客户端,其效率之高是非常明显的。
3、存储过程的参数

10. java调用oracle存储过程

/*这是我的一个调用Oracle procere 的一个class test*/
package com.sp;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.*;

public class Test_fenye {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Connection ct;
CallableStatement cs;
// TODO Auto-generated method stub
try{
//加载驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//建立连接
ct= DriverManager.getConnection("jdbc:odbc:testsp","scott","tiger");
//创建callablestatement调用存储过程
cs=ct.prepareCall("{call pro_fenye(?,?,?,?,?,?)}");
//给前三个in输入 ?赋值,后三个为out返回参数
cs.setString(1, "emp");
cs.setInt(2, 5);
cs.setInt(3, 1);
//注册
cs.registerOutParameter(4, oracle.jdbc.OracleTypes.INTEGER);
cs.registerOutParameter(5, oracle.jdbc.OracleTypes.INTEGER);
cs.registerOutParameter(6, oracle.jdbc.OracleTypes.CURSOR);
//执行
cs.execute();
//取出值
int rowNum=cs.getInt(4);
int pagecount=cs.getInt(5);
ResultSet rs =(ResultSet)cs.getObject(6);

System.out.println("rownumber "+ rowNum);
System.out.println("pagecount "+pagecount);
}catch(Exception ex){
ex.printStackTrace();
}
}

}