`
sllizhimei
  • 浏览: 163545 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

oracle存储过程之返回列表

阅读更多
一. 创建表并插入数据

SQL> create table tb_do_only(
  2  id number primary key,
  3  name varchar2(10)
  4  );

Table created.

SQL> commit;

Commit complete.

SQL> insert into tb_do_only values(1001, 'tom');

1 row created.

SQL> insert into tb_do_only values(1002, 'tony');

1 row created.

SQL> insert into tb_do_only values(1003, 'david');

1 row created.

SQL> insert into tb_do_only values(1004, 'jack');

1 row created.

SQL> commit;

Commit complete.



二. 创建返回列表存储
SQL> create or replace package pkg_return_list as    -- 创建包pkg_return_list及包的游标list_cursor, 该游标等下做pro_return_list的返回参数类型.
  2  type list_cursor is ref cursor;
  3  end pkg_return_list;
  4  /

Package created.

SQL> create or replace procedure pro_return_list(p_cursor out pkg_return_list.list_cursor) is    -- 创建存储过程pro_return_list, 并把p_cursor的类型定义为pkg_return_list.list_cursor.
  2  begin
  3  open p_cursor for select * from scott.tb_do_only;
  4  end pro_return_list;
  5  /

Procedure created.

SQL> commit;

Commit complete.






三.创建返回列表及相应测试Java类
package return_list;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Query_list {

/**
  * @param args
  */
public static void main(String[] args) {
  String driver = "oracle.jdbc.driver.OracleDriver";
  String strUrl = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
  ResultSet rs = null;
  Connection conn = null;

  try {
   Class.forName(driver);
   conn = DriverManager.getConnection(strUrl, "scott", "tiger");

   CallableStatement proc = null;
   proc = conn.prepareCall("{ call scott.pro_return_list(?) }");
   proc.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);
   proc.execute();
   rs = (ResultSet) proc.getObject(1);

   while (rs.next()) {
    System.out.println(rs.getString(1) + " :  " + rs.getString(2));
   }
  } catch (SQLException ex2) {
   ex2.printStackTrace();
  } catch (Exception ex2) {
   ex2.printStackTrace();
  } finally {
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(proc!=null){
try {
proc.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(con!=null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
  }
}
}

文章出自:http://www.blogjava.net/javaex/articles/217474.html
分享到:
评论

相关推荐

    使用java实现oracle存储过程

    使用java实现oracle存储过程。 共有3个小例子。实现的功能 1、无返回值的存储过程 如 insert 2、有返回值的存储过程(非列表)select id from tab 3、返回列表 如:select * from tab 顺便鄙视下csdn,作为一个it...

    用java调用oracle存储过程

    通过实例详细介绍了用java调用oracle存储过程的方法和步骤,包括无返回值的存储过程、有返回值的存储过程(非列表)和返回列表的存储过程的编写、JAVA调用,是一个对存储过程调用的一个全面总结,对程序开发具体实际...

    自学oracle存储过程

    三、 返回列表................................................................................................................... 9 在存储过程中做简单动态查询..............................................

    oracle 存储过程 databaselink 收集

    oracle调用存储过程方法,包括带返回参数和列表参数; oracle创建databaselink的方法和语法,以及对应举例说明。

    用java调用oracle存储过程总结

    一:无返回值的存储过程 二:有返回值的存储过程(非列表) 三:返回列表 及java不能情况下怎么调用

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

     Oracle 数据库中的SQL是当今市场上功能最强大的SQL实现之一,而本书全面展示了这一工具的威力。如何才能让更多人有效地学习和掌握SQL呢?Karen Morton及其团队在本书中提供了专业的方案:先掌握语言特性,再学习...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。  拉里•埃里森  就业前景 从就业与择业的...

    Oracle8i_9i数据库基础

    §16.2.3.2 对存储过程程序进行解释 279 §16.2.3.3 调试源码直到正确 279 §16.2.3.4 授权执行权给相关的用户或角色 279 §16.2.4 与存储过程相关数据字典 280 §16.3 创建函数 281 §16.4 过程和函数中的例外处理 ...

    .NET DbHelper 数据访问类(MSSQL Mysql ORACLE)

    /// 执行带参数的 Sql 语句或存储过程,并返回受影响的记录数。 /// /// 要执行的 Sql 语句或存储过程名等。 /// <param name="type">CommandType 参数类型,即该命令是 sql 语句,还是存储过程名等。 /// ...

    Oracle9i的init.ora参数中文说明

    说明: 用于指定数据库为远程 PL/SQL 存储的过程处理被依赖对象的方式。如果设置为 TIMESTAMP, 只有在服务器与本地时间戳相匹配的情况下, 才能执行该过程。如果设置为 SIGNATURE, 在签名安全的情况下即可执行该过程。...

    Toad 使用快速入门

     把鼠标定位到表/视图/存储过程名称之上,按F4,可以打开对象描述窗口,方便的查看表和视图的定义,存储过程的源代码,  非常容易对SQL语句的分析其执行计划:单击工具栏上的 按钮就可以看到Explain Plan的...

    Sqlserver2000经典脚本

    │ 7.2.4 使用系统存储过程实现的通用分页存储过程.sql │ │ 7.3.1 实现随机分页的通用分页存储过程.sql │ │ 7.3.2 根据分类表实现的分页存储过程.sql │ │ │ └─其他 │ sp_cursor.sql...

    PL/SQL学习笔记

    (v1 int ,v2 int)--存储过程的参数列表 as --声明局部变量 begin null; end; 调用过程 1.declare调用 2.命令调用 删除存储过程:drop procedure p1; 学习状态:学一个东西,有欲望,写东西出来 三段式:被动,自发...

    PL/SQL Developer8.04官网程序_keygen_汉化

    PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分。PL/SQL ...

    PLSQLDeveloper下载

    PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分。PL/SQL ...

    asp.net知识库

    发布Oracle存储过程包c#代码生成工具(CodeRobot) New Folder XCodeFactory3.0完全攻略--序 XCodeFactory3.0完全攻略--基本思想 XCodeFactory3.0完全攻略--简单示例 XCodeFactory3.0完全攻略--IDBAccesser ...

    经典SQL脚本大全

    │ │ 7.2.4 使用系统存储过程实现的通用分页存储过程.sql │ │ 7.3.1 实现随机分页的通用分页存储过程.sql │ │ 7.3.2 根据分类表实现的分页存储过程.sql │ │ │ └─其他 │ sp_cursor.sql │ 基本方法.sql ...

Global site tag (gtag.js) - Google Analytics