java 调用oracle中的过程函数

1,无返回值+有返回值的过程

create table book
(bookId number,bookName varchar2(50),publishHouse varchar2(50));
--过程
--in:表示这是一个输入参数,默认是in可以不写\
--out:
create or replace procedure sp_pro11
(spBookId in number,spbookName in varchar2,sppublishHouse in varchar2) is
begin
  insert into book values(spBookId,spbookName,sppublishHouse);
  end;

--有输入和输出的实例
create or replace procedure sp_pro12
(spno in number,spName out varchar2,spSal out number,spJob out varchar2) is
 begin 
   select ename,sal,job into spName,spSal,spJob from emp where empno=spno;
   end;


2,java调函数的写法(无返回值+有返回值的)

	Class.forName(driver);
			conn=DriverManager.getConnection(strUrl,"scott","tiger");
			
		/*	CallableStatement pro =conn.prepareCall("{call sp_pro11(?,?,?)}");
			pro.setInt(1, 10);
			pro.setString(2, "这是一本神秘书本");
			pro.setString(3, "人民出版社!");
			pro.execute();
			*/
			
			CallableStatement pro =conn.prepareCall("{call sp_pro12(?,?,?,?)}");
			pro.setInt(1, 7788);
			//这是oracle过程返回值;
			pro.registerOutParameter(2, oracle.jdbc.OracleTypes.VARCHAR);
			pro.registerOutParameter(3, oracle.jdbc.OracleTypes.DOUBLE);
			pro.registerOutParameter(4, oracle.jdbc.OracleTypes.VARCHAR);
			pro.execute();
			//取出返回值
			String name=pro.getString(2);
			String job = pro.getString(4);
			Double sal = pro.getDouble(3);
			System.out.println("7788的名字:"+name+"   工资:"+sal+"  工作:"+job);
			pro.close();
			conn.close();


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值