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调用带游标参数的存储过程的更多相关文章

  1. c#调用带输出参数的存储过程

    sql server中编写一个存储过程: CREATE PROCEDURE ProGetPWD @username varchar(20), @password varchar(20) OUTPUT ...

  2. DATASNAP中间件调用带OUTPUT参数的存储过程

    服务端: function TServerMethods1.spExecOut(funcId, sqlId, inParams: OleVariant): OleVariant;var d: Tfrm ...

  3. C# 调用带输入输出参数的存储过程

    //调用存储过程执行类似于2//select count(*) from userinfo where username=username and pwd=pwd and grade=grade3// ...

  4. sqlserver 带输出参数的存储过程的创建与执行

    创建 use StudentManager go if exists(select * from sysobjects where name='usp_ScoreQuery4') drop proce ...

  5. oracle学习 十二 使用.net程序调用带返回值的存储过程(持续更新)

    数据库返回的是结果集,存储过程返回的是一个或者多个值,所以不要使用while循环去读取,也不要使用datareader函数去调用.v_class_name是返回函数 使用.net调用oracle数据库 ...

  6. (java oracle)以bean和array为参数的存储过程及dao部分代码

    一.数据库部分 1.创建bean对象 CREATE OR REPLACE TYPE "QUARTZJOBBEAN" as object ( -- Author : Duwc -- ...

  7. mysql 调用带返回值的存储过程

    存储过程: create procedure proc_t(out uname varchar(50),out upwd varchar(50),in uid int) BEGIN select na ...

  8. sqlserver 带输出参数的存储过程

    --创建存储过程create procedure proc_stu@sname varchar(20),@pwd varchar(50),@flag bit outputasif exists(sel ...

  9. C#调用带返回值的存储过程

    ()在SQL Server中建立如下的存储过程: set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[GetNa ...

随机推荐

  1. 菜鸟攻城狮1(JAVA程序设计)

    1.JAVA是一个完整的平台,有一个庞大的库,提供了可重复利用的代码功能块,安全性,跨操作系统的可以移植性,自动垃圾回收机制 2.JAVA设计者白皮书:简单性.面向对象.网络技能.健壮性.安全性.体系 ...

  2. mac上如何查看gif

    今天生成了一个gif,结果用mac自带的图片预览功能打开,图片被切成一张一张的,不是动图效果了.原以为还得下第三方看图软件,后来百度下发现mac本身也可以打开. 方法一: 鼠标右击图片,选择“快速查看 ...

  3. 8、泛型程序设计与c++标准模板库2.5容器适配器

    容器适配器是用来扩展7中基本容器的,是修改和调整其他类接口的类.他们不提供存放数据的实际数据结构的实现方法,而且容器适配器也不支持迭代器. 1.标准栈容器 使用STL中的标准栈为程序员提供了一层附加的 ...

  4. webAPI路由的使用

    根据WEBAPI的路由规则,在实际项目当中有二种用法, 一:webAPI.Config里面为 config.MapHttpAttributeRoutes(); config.Routes.MapHtt ...

  5. Umbraco Examine Search (Lucene.net) french accent

    在项目中使用Umbraco examine search 来search 法语网站时,客户有一个需求,就是 当search  expérience 和 experience 时,需要返回一样的结果. ...

  6. 8.Struts2-057漏洞复现

    漏洞信息: 定义XML配置时如果namespace值未设置且上层动作配置(Action Configuration)中未设置或用通配符namespace时可能会导致远程代码执行. url标签未设置va ...

  7. hdu1085

    #include <iostream> #include <cstring> using namespace std; int n[3],a[9000],b[9000],i,j ...

  8. 如何保持blog的高质量(相对于自己的进步而言的)

    多写! 多改!! 多删!!!

  9. 第一个 Django 应用

    1. 创建项目 1.1 新建项目 首先新建一个项目,名为 mysite,命令如下: django-admin startproject mysite # 或用 django-admin.py 运行成功 ...

  10. 关于nginx的使用感想

    感慨: 最近老板说要转型NodeJs,所以接连用ThinkJS框架写了2个项目(不过通篇弱类型不用考虑class是真的爽啊...).那天老板又正好让我看看Ngxin的负载均衡和静态资源处理,那现在就写 ...