oracle存储过程,存储过程,以及在java中的调用
2014-02-27 10:16
746 查看
以下存储过程均为oracle数据库中的scott账户下的各种表
创建存储过程
创建存储函数
存储函数和存储过程在申明的时候格式略有不同 ,存储函数有一个return返回值
但实际上我们可以设置存储过程中的参数为out类型,来实现传出参数的功能
下面使用java程序来调用存储函数和过程,首先要确保存储函数和过程已经被创建了
可以通过sqldeveloper来查看
![](https://img-blog.csdn.net/20140227102231625?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2luZ2hlcm9vbw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
java调用存储过程
java调用存储函数
创建存储过程
/* 查询某个员工的姓名 月薪 职位 */其中eno为参数名,in表明参数为传入参数,number表明参数的类型 create or replace procedure queryEmpInfo(eno in number, pename out varchar2, psal out number, pjob out varchar2) as begin select ename,sal,empjob into pename,psal,pjob from emp where empno=eno; end; /
创建存储函数
/* 查询某个员工的年收入 CREATE [OR REPLACE] FUNCTION 函数名(参数列表) RETURN 函数值类型 AS PLSQL子程序体; */ create or replace function queryEmpIncome(eno in number) return number as --变量emp.sal%type表明psal的类型与emp表中的sal类型相同 psal emp.sal%type; pcomm emp.comm%type; begin select sal,comm into psal,pcomm from emp where empno=eno; return psal*12+nvl(pcomm,0); end; /
存储函数和存储过程在申明的时候格式略有不同 ,存储函数有一个return返回值
但实际上我们可以设置存储过程中的参数为out类型,来实现传出参数的功能
下面使用java程序来调用存储函数和过程,首先要确保存储函数和过程已经被创建了
可以通过sqldeveloper来查看
java调用存储过程
/* * create or replace procedure queryEmpInfo(eno in number, pename out varchar2, psal out number, pjob out varchar2) */ @Test public void testProcedure(){ //{call <procedure-name>[(<arg1>,<arg2>, ...)]} String sql = "{call queryEmpInfo(?,?,?,?)}"; Connection conn = null; CallableStatement call = null; try{ conn = JDBCUtils.getConnection(); call = conn.prepareCall(sql); //赋值 call.setInt(1, 7839); //对于out参数,申明 call.registerOutParameter(2, OracleTypes.VARCHAR); call.registerOutParameter(3, OracleTypes.NUMBER); call.registerOutParameter(4, OracleTypes.VARCHAR); //调用 call.execute(); //取出结果 String name = call.getString(2); double sal = call.getDouble(3); String job = call.getString(4); System.out.println(name); System.out.println(sal); System.out.println(job); }catch (Exception e) { e.printStackTrace(); }finally{ JDBCUtils.release(conn, call, null); } }
java调用存储函数
/* * create or replace function queryEmpIncome(eno in number) return number */ @Test public void testFunction(){ //{?= call <procedure-name>[(<arg1>,<arg2>, ...)]} String sql = "{?=call queryEmpIncome(?)}"; Connection conn = null; CallableStatement call = null; try{ conn = JDBCUtils.getConnection(); call = conn.prepareCall(sql); call.registerOutParameter(1, OracleTypes.NUMBER); call.setInt(2, 7839); //执行 call.execute(); //取出年收入 double income = call.getDouble(1); System.out.println(income); }catch (Exception e) { e.printStackTrace(); }finally{ JDBCUtils.release(conn, call, null); } }
相关文章推荐
- Oracle存储过程、存储函数以及Java程序调用存储过程和存储函数
- MySQL存储过程以及Java调用ca'llablestatment
- MYSQL存储过程以及JAVA调用
- oracle编写过程以及存储过程在java中的调用
- MySQL存储过程以及在JAVA中的程序调用
- java连接Oracle以及调用其中的存储过程与存储函数
- MySQL存储过程以及在JAVA中的程序调用
- 【传智播客郑州校区】Java,PL/SQL调用 ORACLE存储函数以及存储过程
- Java操作Oracle数据库以及调用存储过程
- 存储过程之八-java代码调用oracle存储过程
- 存储过程定义调用以及java调用存储过程
- sybase存储过程的写法以及java的调用方法
- java中用事物控制语言调用数据库中的数据,以及调用存储过程或函数
- 学习下oracle的存储过程增删改查操作以及java调用存储过程
- Java调用存储过程------
- java调用存储过程
- Java对存储过程的调用方法
- Java 调用Mysql 存储过程
- Java调用SQL Server的存储过程详解
- JAVA调用oracle三种存储过程实例