jdbc oracle 返回游标,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();

}

}

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 ...

随机推荐

ASP.NET伪静态实现

ASP.NET伪静态实现 在asp.net下,如何自己写代码来实现伪静态呢?如何重写url地址呢? 例如:本来aspx的页面地址是:/default.aspx?id=1,我要重写成这样:/index- ...

Objective-C中的Block回调模式

在前面的博客中提到了Block的概念和使用方法,个人感觉Block最爽的用法莫过于在回调时用block.感觉比委托回调和目标方法回调用着要顺手,好不好用还得读者亲自用一下才知道.如果 读者之前用过SS ...

winserver2008下创建计划任务注意点

winserver2008下创建任务计划注意点: 1.建立独立用户,可以给其赋予administrator权限 2.起始于(可选):要填写exe文件所在路径 3.设置成“不管用户是否登录都运行”,同时 ...

pidof,pgrep进程名查PID, /proc目录由pid查进程名

pidof,pgrep进程名查PID cat /proc/4990/status|grep "name",由pid查进程名

.NET下,关于文件夹权限设置的小细节

InheritanceFlags 指定哪些接受权限继承 InheritanceFlags.ContainerInherit 下级文件夹要继承权限. InheritanceFlags.None 下级文件 ...

ASP.NET Core中使用Autofac

⒈添加相关依赖 Install-Package Autofac ⒉扫描项目接口实现类 using Autofac; using System; using System.Collections.Gen ...

Unity 之 rawimage 与image 的区别

http://www.newbieol.com/information/740.html

GPS坐标定位与距离计算

Android获取当前位置(GPS和网络定位) 1.比较: GPS准确度高但耗电多,网络定位耗电少但准确度低 2.代码 ①添加权限: AndroidManifest.xml:

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值