oracle学习-存储过程返回一个值,和返回一个结果集
一、返回一个值
--创建存储过程 create or replace procedure sp_hu_test(spcode in varchar2,spname out varchar2)is
begin
select cname into spname from gb_customerinfo where ccode = spcode;
end;
//java代码调用和接受返回值 public static void main(String[] arg) {
try { Class.forName("oracle.jdbc.driver.OracleDriver"); Connection cnn = DriverManager.getConnection(
"jdbc:oracle:thin:@192.168.1.116:1521:cwerp",
"hu_gbxt", "hu_gbxt");
//创建CallableStatement
CallableStatement cs = cnn.prepareCall("{call sp_hu_test(?,?)}"); cs.setString(1, "082");
cs.registerOutParameter(2, oracle.jdbc.OracleTypes.VARCHAR); cs.execute();
String cname = cs.getString(2);
System.out.println("名字:" + cname); cs.close();
cnn.close();
} catch (Exception e) {
e.printStackTrace();
} }
}
二、返回多个值
--创建一个包,包里有个游标变量 create or replace package mypackage as
type sp_cursor is ref cursor;
end mypackage; --创建存储过程
create or replace procedure sp_proc(carcode in varchar2,sp_coesor out mypackage.sp_cursor)is
begin
open sp_coesor for select * from gb_truck where cardcode = carcode;
end;
//注解,这里面的输出参数是个游标类型 //java调用存储过程 public static void main(String[] arg) {
try { Class.forName("oracle.jdbc.driver.OracleDriver"); Connection cnn = DriverManager.getConnection(
"jdbc:oracle:thin:@192.168.1.116:1521:cwerp",
"hu_gbxt", "hu_gbxt");
//创建CallableStatement
CallableStatement cs = cnn.prepareCall("{call sp_proc(?,?)}");
cs.setString(1, "皖1958707");
cs.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);
cs.execute();
ResultSet rs = (ResultSet)cs.getObject(2);
while(rs.next()){
System.out.println(rs.getString(1) + " " + rs.getString(2) + " " + rs.getString(4)); //关闭
cs.close();
cnn.close();
} catch (Exception e) {
e.printStackTrace();
} }
}
oracle学习-存储过程返回一个值,和返回一个结果集的更多相关文章
- Oracle学习笔记十二 子程序(存储过程、自定函数)和程序包
子程序 子程序:命名的 PL/SQL 块,编译并存储在数据库中. 子程序的各个部分: 1.声明部分 2.可执行部分 3.异常处理部分(可选) 子程序的分类: 1.过程 - 执行某些操作 2.函数 ...
- 把一个给定的值存储到一个整数中指定的几个位《C与指针5.8.5》
编写一个函数,把一个给定的值存储到一个整数中指定的几个位.它的原型如下: int store_bit_field(int original_value, int value_to_store, uns ...
- Swift编程语言学习1.6——可选值
可选值 使用可选(optionals)来处理值可能缺失的情况.可选表示: 有值,等于 x 或者没有值 注意: C 和 Objective-C 中并没有可选这个概念.最接近的是 Objective- ...
- LR 取到怎么样才能得到参数列表中的每一个值
char *m="e"; lr_save_string("helloworld","p4"); lr_eval_string("{ ...
- PB中用oracle的存储过程返回记录集做数据源来生成数据窗口,PB会找不到此存储过程及不能正常识别存储过程的参数问题(转)
(转)在PB中用oracle的存储过程返回记录集做数据源来生成数据窗口 首先oracle的存储过程写法与MSSQL不一样,差别比较大. 如果是返回数据集的存储过程则需要利用oracle的包来定义游标. ...
- Entity Framework 调用返回标量值的存储过程
最近项目用到EF,虽然说EF与Linq To SQL有很多地方相似,但是EF(这里指3.5版,4.0版的还没去留意)确实有些地方做得不够方便. 就拿存储过程来说吧,EF里面想调用存储过程不是直接在数据 ...
- java 一个函数EnumMap返回多个值
java 一个函数如何返回多个值 在开发过程中,经常会有这种情况,就是一个函数需要返回多个值,这是一个问题!! 网上这个问题的解决方法: 1.使用map返回值:这个方法问题是,你并不知道如何返回值 ...
- Sql中联合查询中的”子查询返回的值不止一个“的问题
在子查询中,如果想实现如下的功能: select lib,count(*),select sum(newsNo) from Table1 group by lib from Tabel1 T1,Tab ...
- 2017寒假零基础学习Python系列之函数之 返回多个值
Python也和C语言一样有自己的标准库,不过在Python中叫做模块(module),这个和C语言中的头文件以及Java中的包类似,其中math就是其中之一,math模块中提供了sin()和cos( ...
随机推荐
- 使用as3控制动画的播放与暂停
1.需要两个按钮元件 2.在属性面板为两个按钮元件分别命名为pausebutton与playButton 3.代码 stop(); pausebutton.visible = false; playB ...
- 异步上传文件,ajax上传文件,jQuery插件之ajaxFileUpload
http://www.cnblogs.com/kissdodog/archive/2012/12/15/2819025.html 一.ajaxFileUpload是一个异步上传文件的jQuery插件. ...
- finally语句总是不会被执行?
答案是否(1)try语句没有被执行到,如在try语句之前return就返回了,这样finally语句就不会执行.这也说明了finally语句被执行的必要而非充分条件是:相应的try语句一定被执行到.( ...
- 为什么引用不了App_Code里的类(报“未能找到类型或命名空间名称”错误)
在Web应用程序中不能通过右键项目-〉”添加“-〉”添加ASP.NET文件夹“方式添加 .因为Web应用程序中App_Code就不存在 . 不过可以通过手动的方式创建,添加一个文件夹命名为App_Co ...
- SSIS 部署到SQL Job
微软 BI 系列随笔 - SSIS 基础 - 部署SQL Job 简介 在之前博客中,讲述了如何实现SSIS的项目部署以及利用SSIS的参数与环境加速部署,参见 微软 BI 系列随笔 - SSIS 基 ...
- HDU 4135 Co-prime(容斥原理)
Co-prime 第一发容斥,感觉挺有意思的 →_→ [题目链接]Co-prime [题目类型]容斥 &题意: 求(a,b)区间内,与n互质的数的个数. \(a,b\leq 10^{15}\) ...
- Java中Enum类型的序列化(转)
在Java中,对Enum类型的序列化与其他对象类型的序列化有所不同,今天就来看看到底有什么不同.下面先来看下在Java中,我们定义的Enum在被编译之后是长成什么样子的. Java代码: Java代码 ...
- bootstrap-导航条
<body style="padding-top:50px"> <!-- navbar 导航条的基础样式 nav navbar-nav 导航条里菜单的固定样式组合 ...
- HttpURLConnection 直接发送soap消息调用webservice
httpConn = (HttpURLConnection) new URL(urlString).openConnection(); httpConn.setRequestProperty(& ...
- nginx/Windows-1.9.3启动脚本
启动nginx.bat @echo off D: cd D:\Program Files\nginx-1.9.3 tasklist | findstr /i "nginx.exe" ...