全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解Oracle在out参数中访问光标

详解Oracle在out参数中访问光标

一 概念

申明包结构
包头:负责申明
包体:负责实现 

二 需求

查询某个部门中所有员工的所有信息

三 包头

CREATE OR REPLACE 
PACKAGE MYPACKAGE AS 
 type empcursor isref cursor;
 procedure queryEmplist(dno in number,emplist out empcursor);
END MYPACKAGE;

四 包体

包体需要实现包头中声明的所有方法

CREATE OR REPLACE
PACKAGE BODY MYPACKAGE AS
 procedure queryEmplist(dno in number,emplist out empcursor) AS
BEGIN
--打开光标
  open emplist forselect*from emp where deptno = dno;
END queryEmplist;
END MYPACKAGE;

五 在应用程序中访问包中的存储过程

1、代码

package demo.oracle;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import oracle.jdbc.OracleCallableStatement;
import oracle.jdbc.OracleTypes;
import org.junit.Test;
import demo.utils.JDBCUtils;
publicclassTestCursor{
/*
 CREATE OR REPLACE PACKAGE MYPACKAGE AS 
 type empcursor is ref cursor;
 procedure queryEmplist(dno in number,emplist out empcursor);
END MYPACKAGE;
 * */
@Test
publicvoid testCursor(){
String sql="{call MYPACKAGE.queryEmplist(?,?)}";
Connection conn =null;
CallableStatement call =null;
ResultSet rs =null;
try{
//获取数据库的连接
  conn =JDBCUtils.getConnection();
//创建statement
  call = conn.prepareCall(sql);
//对于in参数,赋值
  call.setInt(1,10);
//对于out参数,申明
  call.registerOutParameter(2,OracleTypes.CURSOR);
//执行调用
  call.execute();
//取出该部门中所有员工的信息
  rs =((OracleCallableStatement)call).getCursor(2);
while(rs.next()){
//取出该员工的员工号,姓名,薪水和职位
int empno = rs.getInt("empno");
String name =rs.getString("ename");
double salay = rs.getDouble("sal");
String job = rs.getString("empjob");
System.out.println(empno+"\t"+name+"\t"+salay+"\t"+job);
}
}catch(Exception e){
  e.printStackTrace();
}finally{
JDBCUtils.release(conn, call, rs);
}
}
}

2、运行结果

7782  CLARK  6450.0  MANAGER
7839  KING  10100.0  PRESIDENT
7934  MILLER  3300.0  CLERK

以上就是Oracle在out参数中访问光标的实例,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Oracle在out参数中访问光标  # Oracle在out参数中访问光标的实例详解  # Oracle的out参数实例详解  # Oracle中serveroutput参数一次设置永久保存方法  # Oracle 子程序参数模式  # IN  # OUT  # NOCOPY  # 如有  # 希望能  # 谢谢大家  # 存储过程  # 应用程序  # 门中  # 包中  # 疑问请  # 该部  # import  # java  # CallableStatement  # oracle  # deptno  # package  # demo  # utils  # Test  # junit  # ref 


相关文章: 学校免费自助建站系统:智能生成+拖拽设计+多端适配  如何通过云梦建站系统实现SEO快速优化?  Thinkphp 中 distinct 的用法解析  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  如何选择适配移动端的WAP自助建站平台?  如何选择高性价比服务器搭建个人网站?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  如何通过商城自助建站源码实现零基础高效建站?  如何快速生成可下载的建站源码工具?  如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法  建站之星备案是否影响网站上线时间?  英语简历制作免费网站推荐,如何将简历翻译成英文?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  如何在七牛云存储上搭建网站并设置自定义域名?  高端云建站费用究竟需要多少预算?  打鱼网站制作软件,波克捕鱼官方号怎么注册?  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  如何做网站制作流程,*游戏网站怎么搭建?  网站制作公司,橙子建站是合法的吗?  高端网站建设与定制开发一站式解决方案 中企动力  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  如何访问已购建站主机并解决登录问题?  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  如何在建站之星网店版论坛获取技术支持?  黑客入侵网站服务器的常见手法有哪些?  如何在香港免费服务器上快速搭建网站?  制作国外网站的软件,国外有哪些比较优质的网站推荐?  高防服务器租用如何选择配置与防御等级?  如何生成腾讯云建站专用兑换码?  详解jQuery停止动画——stop()方法的使用  如何在IIS管理器中快速创建并配置网站?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  如何快速搭建高效可靠的建站解决方案?  如何选择高效稳定的ISP建站解决方案?  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  青岛网站建设如何选择本地服务器?  如何通过VPS建站无需域名直接访问?  重庆网站制作公司哪家好,重庆中考招生办官方网站?  如何快速打造个性化非模板自助建站?  如何快速搭建虚拟主机网站?新手必看指南  网站制作话术技巧,网站推广做的好怎么话术?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  如何用5美元大硬盘VPS安全高效搭建个人网站?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  广州营销型建站服务商推荐:技术优势与SEO优化解析  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。