Oracle使用jdbc调用带游标参数的存储过程
package com.jckb.procedure; import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet; import oracle.jdbc.OracleCallableStatement; public class MainTest3 {
/**
* 使用jdbc调用带游标参数的存储过程
create or replace PACKAGE PACKAGE1 AS
--定义游标类型
type empCursor is ref cursor;
--定义存储过程使用游标
procedure findEmpInfoByDept(mydeptno in number,empInfo out empCursor);
END PACKAGE1;
-------------------
create or replace PACKAGE BODY PACKAGE1 AS
procedure findEmpInfoByDept(mydeptno in number,empInfo out empCursor) AS
BEGIN
-- 根据指定的部门编号员工信息赋值隔日输出型变量游标
open empInfo for select * from emp where deptno=mydeptno;
--此处不能关闭游标
END findEmpInfoByDept;
END PACKAGE1;
* */
public static void main(String[] args) throws Exception{
Class.forName("oracle.jdbc.OracleDriver");
Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "tiger");
CallableStatement callableStatement = connection.prepareCall("{call PACKAGE1.findEmpInfoByDept(?,?)}");
callableStatement.setInt(1, 10);
callableStatement.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);
callableStatement.execute();
//获取值
ResultSet resultSet = ((OracleCallableStatement)callableStatement).getCursor(2);
while(resultSet.next()){
int empno = resultSet.getInt(1);
String ename = resultSet.getString(2);
String job = resultSet.getString(3);
System.out.println("编号:" + empno + " 用户:" + ename + " 工作:" + job);
}
resultSet.close();
callableStatement.close();
connection.close();
}
}
Oracle使用jdbc调用带游标参数的存储过程的更多相关文章
- c#调用带输出参数的存储过程
sql server中编写一个存储过程: CREATE PROCEDURE ProGetPWD @username varchar(20), @password varchar(20) OUTPUT ...
- DATASNAP中间件调用带OUTPUT参数的存储过程
服务端: function TServerMethods1.spExecOut(funcId, sqlId, inParams: OleVariant): OleVariant;var d: Tfrm ...
- C# 调用带输入输出参数的存储过程
//调用存储过程执行类似于2//select count(*) from userinfo where username=username and pwd=pwd and grade=grade3// ...
- sqlserver 带输出参数的存储过程的创建与执行
创建 use StudentManager go if exists(select * from sysobjects where name='usp_ScoreQuery4') drop proce ...
- oracle学习 十二 使用.net程序调用带返回值的存储过程(持续更新)
数据库返回的是结果集,存储过程返回的是一个或者多个值,所以不要使用while循环去读取,也不要使用datareader函数去调用.v_class_name是返回函数 使用.net调用oracle数据库 ...
- (java oracle)以bean和array为参数的存储过程及dao部分代码
一.数据库部分 1.创建bean对象 CREATE OR REPLACE TYPE "QUARTZJOBBEAN" as object ( -- Author : Duwc -- ...
- mysql 调用带返回值的存储过程
存储过程: create procedure proc_t(out uname varchar(50),out upwd varchar(50),in uid int) BEGIN select na ...
- sqlserver 带输出参数的存储过程
--创建存储过程create procedure proc_stu@sname varchar(20),@pwd varchar(50),@flag bit outputasif exists(sel ...
- C#调用带返回值的存储过程
()在SQL Server中建立如下的存储过程: set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[GetNa ...
随机推荐
- Sequence Models 笔记(二)
2 Natural Language Processing & Word Embeddings 2.1 Word Representation(单词表达) vocabulary,每个单词可以使 ...
- /*用户登录注册页面输入框的设置*/<span>的使用
<!DOCTYPE html> /*用户登录注册页面输入框的设置*/ <html lang="en"> <head> <meta char ...
- if if 和 if elif 的区别
再一次编程中意外使用了if if 也实现了 if elif的功能,所以搜索了下其中的区别: 1.if if 和 if elif 是有区别的,只是在某些情况下才会一样的效果: 2.随意使用会导致意外的错 ...
- IPv4 和 IPv6地址
目前Internet上使用的基本都是IPv4地址,也就是说地址总共是32个比特位,也就是32位二进制数. 所以IPv4地址总的容量是 2的32次方 = 4294967296 比如 11010010 ...
- Sharepoint2013商务智能学习笔记之Excel Service展示Sql Server数据Demo(五)
第一步,打开Excel新建空白工作簿 第二步,使用Excel连接sql 数据库 第三步,画图 第四步 添加筛选器 最后效果如下: 第五步,将Excel上传到sharepoint任意文档库,并直接点击 ...
- 为什么源码中很多方法就一行throw new RuntimeException("Stub!")
在使用某些类的方法时,发现其内部就一行throw new RuntimeException("Stub!"),但是实际运行中并没有抛出该错误,该方法也并没有语法报错. 因此可能是系 ...
- 【maven setting.xml】
<!--声明语句--> <?xml version="1.0" encoding="UTF-8"?> <settings xmln ...
- 使用urllib获取一个网页内所有a标签的href属性
import re, urllib.request, urllib.parse, urllib.error page = input('Enter - ') fhand = urllib.reques ...
- <富爸爸,穷爸爸> 书中的好句子
成为 做 拥有 资产是能把钱放进你口袋里的东西:负债是把钱从你的口袋里取走的东西. 语言会变成血肉,留在我们的身体里 要想做一个成功的投资者,你必须在情感上对赚钱和赔钱漠不关心,赚钱和赔钱只是游戏的一 ...
- Beta博客总结
描述项目预期计划和现实进展 冲刺 时间 预期任务以及预估时间 现实完成情况以及实际用时 冲刺1 12.4 修改等级答题界面:30,修改获取用户信息接口:30 修改等级答题界面:60,修改获取用户信息接 ...