一、返回一个值

--创建存储过程

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学习-存储过程返回一个值,和返回一个结果集的更多相关文章

  1. Oracle学习笔记十二 子程序(存储过程、自定函数)和程序包

    子程序 子程序:命名的 PL/SQL 块,编译并存储在数据库中.   子程序的各个部分: 1.声明部分 2.可执行部分 3.异常处理部分(可选) 子程序的分类: 1.过程 - 执行某些操作 2.函数 ...

  2. 把一个给定的值存储到一个整数中指定的几个位《C与指针5.8.5》

    编写一个函数,把一个给定的值存储到一个整数中指定的几个位.它的原型如下: int store_bit_field(int original_value, int value_to_store, uns ...

  3. Swift编程语言学习1.6——可选值

    可选值 使用可选(optionals)来处理值可能缺失的情况.可选表示: 有值,等于 x   或者没有值 注意: C 和 Objective-C 中并没有可选这个概念.最接近的是 Objective- ...

  4. LR 取到怎么样才能得到参数列表中的每一个值

    char *m="e"; lr_save_string("helloworld","p4"); lr_eval_string("{ ...

  5. PB中用oracle的存储过程返回记录集做数据源来生成数据窗口,PB会找不到此存储过程及不能正常识别存储过程的参数问题(转)

    (转)在PB中用oracle的存储过程返回记录集做数据源来生成数据窗口 首先oracle的存储过程写法与MSSQL不一样,差别比较大. 如果是返回数据集的存储过程则需要利用oracle的包来定义游标. ...

  6. Entity Framework 调用返回标量值的存储过程

    最近项目用到EF,虽然说EF与Linq To SQL有很多地方相似,但是EF(这里指3.5版,4.0版的还没去留意)确实有些地方做得不够方便. 就拿存储过程来说吧,EF里面想调用存储过程不是直接在数据 ...

  7. java 一个函数EnumMap返回多个值

    java 一个函数如何返回多个值   在开发过程中,经常会有这种情况,就是一个函数需要返回多个值,这是一个问题!! 网上这个问题的解决方法: 1.使用map返回值:这个方法问题是,你并不知道如何返回值 ...

  8. Sql中联合查询中的”子查询返回的值不止一个“的问题

    在子查询中,如果想实现如下的功能: select lib,count(*),select sum(newsNo) from Table1 group by lib from Tabel1 T1,Tab ...

  9. 2017寒假零基础学习Python系列之函数之 返回多个值

    Python也和C语言一样有自己的标准库,不过在Python中叫做模块(module),这个和C语言中的头文件以及Java中的包类似,其中math就是其中之一,math模块中提供了sin()和cos( ...

随机推荐

  1. Jmeter--HTTP Cookie管理器

    一.什么情况下需要用到Cookie 一般情况下对于HTTP请求的用户登入操作,需要用到Cookie来模拟用户操作,或者对一些业务只有在用户登入之后才能进行操作,比如:常见的场景有购买商品.下单.支付等 ...

  2. C# 深拷贝通用方法

    C#深拷贝通用方法(引用类型的拷贝) /// <summary> /// 深度COPY /// </summary> /// <typeparam name=" ...

  3. java 线程的堵塞

    //线程的阻塞 // //线程 class xc1 implements Runnable{ public void run(){ for(int i=1;i<=30;i++){ System. ...

  4. 极限编程之TDD

         测试驱动开发(Test-Driven Development,TDD)是通过测试定义所要开发的功能的接口,然后实现功能的开发过程. Test-Driven Development(TDD), ...

  5. Json数据处理

    1.字符串转换为Json数组:取json对象属性值. String st="[{"tradeDate":"2016-09-27","trad ...

  6. centos之Haproxy 负载均衡学习笔记

    HAProxy的特点是:1.支持两种代理模式:TCP(四层)和HTTP(七层),支持虚拟主机:2.能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作3.支持url检测后端的 ...

  7. 用递归方法求一个list的最大值

    极好的一张图,瞬间理解.然后留意一下边界条件直接搞定.

  8. jQuery图片渐变特效的简单实现

    (document).ready(function() {(document).ready(function() {("div.baba").mouseleave(function ...

  9. mysql的从头到脚优化之服务器参数的调优

    一. 说到mysql的调优,有许多的点可以让我们去做,因此梳理下,一些调优的策略,今天只是总结下服务器参数的调优  其实说到,参数的调优,我的理解就是无非两点: 如果是Innodb的数据库,innod ...

  10. singleTask, singleInstance使用心得

    1. singleTask, singleInstance 共同点: 1)  一旦入栈,都为于栈底. 2) 全栈有且只有一个activity实例对象. 2. singleTask, singleIns ...