一. 创建表并插入数据
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存储过程。 共有3个小例子。实现的功能 1、无返回值的存储过程 如 insert 2、有返回值的存储过程(非列表)select id from tab 3、返回列表 如:select * from tab 顺便鄙视下csdn,作为一个it...
通过实例详细介绍了用java调用oracle存储过程的方法和步骤,包括无返回值的存储过程、有返回值的存储过程(非列表)和返回列表的存储过程的编写、JAVA调用,是一个对存储过程调用的一个全面总结,对程序开发具体实际...
三、 返回列表................................................................................................................... 9 在存储过程中做简单动态查询..............................................
oracle调用存储过程方法,包括带返回参数和列表参数; oracle创建databaselink的方法和语法,以及对应举例说明。
一:无返回值的存储过程 二:有返回值的存储过程(非列表) 三:返回列表 及java不能情况下怎么调用
Oracle 数据库中的SQL是当今市场上功能最强大的SQL实现之一,而本书全面展示了这一工具的威力。如何才能让更多人有效地学习和掌握SQL呢?Karen Morton及其团队在本书中提供了专业的方案:先掌握语言特性,再学习...
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。 拉里•埃里森 就业前景 从就业与择业的...
§16.2.3.2 对存储过程程序进行解释 279 §16.2.3.3 调试源码直到正确 279 §16.2.3.4 授权执行权给相关的用户或角色 279 §16.2.4 与存储过程相关数据字典 280 §16.3 创建函数 281 §16.4 过程和函数中的例外处理 ...
/// 执行带参数的 Sql 语句或存储过程,并返回受影响的记录数。 /// /// 要执行的 Sql 语句或存储过程名等。 /// <param name="type">CommandType 参数类型,即该命令是 sql 语句,还是存储过程名等。 /// ...
说明: 用于指定数据库为远程 PL/SQL 存储的过程处理被依赖对象的方式。如果设置为 TIMESTAMP, 只有在服务器与本地时间戳相匹配的情况下, 才能执行该过程。如果设置为 SIGNATURE, 在签名安全的情况下即可执行该过程。...
把鼠标定位到表/视图/存储过程名称之上,按F4,可以打开对象描述窗口,方便的查看表和视图的定义,存储过程的源代码, 非常容易对SQL语句的分析其执行计划:单击工具栏上的 按钮就可以看到Explain Plan的...
│ 7.2.4 使用系统存储过程实现的通用分页存储过程.sql │ │ 7.3.1 实现随机分页的通用分页存储过程.sql │ │ 7.3.2 根据分类表实现的分页存储过程.sql │ │ │ └─其他 │ sp_cursor.sql...
(v1 int ,v2 int)--存储过程的参数列表 as --声明局部变量 begin null; end; 调用过程 1.declare调用 2.命令调用 删除存储过程:drop procedure p1; 学习状态:学一个东西,有欲望,写东西出来 三段式:被动,自发...
PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分。PL/SQL ...
PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分。PL/SQL ...
发布Oracle存储过程包c#代码生成工具(CodeRobot) New Folder XCodeFactory3.0完全攻略--序 XCodeFactory3.0完全攻略--基本思想 XCodeFactory3.0完全攻略--简单示例 XCodeFactory3.0完全攻略--IDBAccesser ...
│ │ 7.2.4 使用系统存储过程实现的通用分页存储过程.sql │ │ 7.3.1 实现随机分页的通用分页存储过程.sql │ │ 7.3.2 根据分类表实现的分页存储过程.sql │ │ │ └─其他 │ sp_cursor.sql │ 基本方法.sql ...