- 浏览: 585539 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (268)
- ext基础 (72)
- Java基础 (68)
- jquery (14)
- oracle (21)
- sqlserver (7)
- linux (2)
- webserver (1)
- C/C++ (1)
- sql (9)
- IDE (2)
- java 智能卡 (1)
- mysql (6)
- ibatis (2)
- struts2 (3)
- cvs (1)
- 服务器 (1)
- html (11)
- freemarker (4)
- liferay (2)
- jMS (1)
- iphone (1)
- c# (1)
- Android (11)
- wince (6)
- javascript (4)
- ps (1)
- hibernate (1)
- 其他 (3)
最新评论
-
ilyq:
请问,px.gif 在哪里
斜线表头 -
jisang:
没看懂,第一个org.js和最后的js什么关系,可否发我一份完 ...
用ExtJS 实现动态载入树(Load tree) -
JavaStudyEye:
我去,能否搞个正确点的,,,
<#list ...
freemarker 遍历map 对象 -
PangSir:
大爱,简直是大爱!!困扰这么久以来的问题,虽然知道是CSS的问 ...
ExtJs checkbox radiobox 问题 汇总 -
skynet_java:
有demo嘛!邮箱:think_world@foxmail.c ...
消息推送服务需求 - 服务器开发、客户端开发
配合oracle临时表, 使用存储过程来返回结果集的数据读取方式可以解决海量数据表与其他表的连接问题. 在存储过程中先根据过滤条件从海量数据表中选出符合条件的记录并存放到临时中, 可以通过一个视图将临时表与其他相关表连接起来, 从而避免海量数据造成的连接效率问题.
好久没上来了, 难道今天工作时间稍有空闲, 研究了一下oracle存储过程返回结果集.
配合oracle临时表, 使用存储过程来返回结果集的数据读取方式可以解决海量数据表与其他表的连接问题. 在存储过程中先根据过滤条件从海量数据表中选出符合条件的记录并存放到临时中, 可以通过一个视图将临时表与其他相关表连接起来, 从而避免海量数据造成的连接效率问题.
具体实现如下:
-- 启用服务器输出
---------------------
set serveroutput on
-- 创建测试表
---------------------
-- 声明程序包
---------------------
create or replace package pkg_test
as
type type_cursor is ref cursor;
procedure read_rows (header varchar2, result out type_cursor);
end pkg_test;
/
好久没上来了, 难道今天工作时间稍有空闲, 研究了一下oracle存储过程返回结果集.
配合oracle临时表, 使用存储过程来返回结果集的数据读取方式可以解决海量数据表与其他表的连接问题. 在存储过程中先根据过滤条件从海量数据表中选出符合条件的记录并存放到临时中, 可以通过一个视图将临时表与其他相关表连接起来, 从而避免海量数据造成的连接效率问题.
本文只讨论使用存储过程返回结果集.
具体实现如下:
-- 启用服务器输出
---------------------
set serveroutput on
-- 创建测试表
---------------------
create table test_pkg_test
(
id number(10) constraint pk_test_pkg_test primary key,
name varchar2(30)
);
-- 写入测试数据
---------------------
begin
insert into test_pkg_test(id) values(1);
insert into test_pkg_test(id) values(2);
insert into test_pkg_test(id) values(3);
insert into test_pkg_test(id) values(4);
insert into test_pkg_test(id) values(5);
insert into test_pkg_test(id) values(6);
insert into test_pkg_test(id) values(7);
insert into test_pkg_test(id) values(8);
insert into test_pkg_test(id) values(9);
insert into test_pkg_test(id) values(10);
insert into test_pkg_test(id) values(11);
insert into test_pkg_test(id) values(12);
insert into test_pkg_test(id) values(13);
insert into test_pkg_test(id) values(14);
insert into test_pkg_test(id) values(15);
insert into test_pkg_test(id) values(16);
insert into test_pkg_test(id) values(17);
insert into test_pkg_test(id) values(18);
end;
/
update test_pkg_test set name='name of ' || to_char(id);
commit;
程序包
java调用
好久没上来了, 难道今天工作时间稍有空闲, 研究了一下oracle存储过程返回结果集.
配合oracle临时表, 使用存储过程来返回结果集的数据读取方式可以解决海量数据表与其他表的连接问题. 在存储过程中先根据过滤条件从海量数据表中选出符合条件的记录并存放到临时中, 可以通过一个视图将临时表与其他相关表连接起来, 从而避免海量数据造成的连接效率问题.
具体实现如下:
-- 启用服务器输出
---------------------
set serveroutput on
-- 创建测试表
---------------------
create table test_pkg_test ( id number(10) constraint pk_test_pkg_test primary key, name varchar2(30) ); -- 写入测试数据 --------------------- begin insert into test_pkg_test(id) values(1); insert into test_pkg_test(id) values(2); insert into test_pkg_test(id) values(3); insert into test_pkg_test(id) values(4); insert into test_pkg_test(id) values(5); insert into test_pkg_test(id) values(6); insert into test_pkg_test(id) values(7); insert into test_pkg_test(id) values(8); insert into test_pkg_test(id) values(9); insert into test_pkg_test(id) values(10); insert into test_pkg_test(id) values(11); insert into test_pkg_test(id) values(12); insert into test_pkg_test(id) values(13); insert into test_pkg_test(id) values(14); insert into test_pkg_test(id) values(15); insert into test_pkg_test(id) values(16); insert into test_pkg_test(id) values(17); insert into test_pkg_test(id) values(18); end; / update test_pkg_test set name='name of ' || to_char(id); commit;
-- 声明程序包
---------------------
create or replace package pkg_test
as
type type_cursor is ref cursor;
procedure read_rows (header varchar2, result out type_cursor);
end pkg_test;
/
好久没上来了, 难道今天工作时间稍有空闲, 研究了一下oracle存储过程返回结果集.
配合oracle临时表, 使用存储过程来返回结果集的数据读取方式可以解决海量数据表与其他表的连接问题. 在存储过程中先根据过滤条件从海量数据表中选出符合条件的记录并存放到临时中, 可以通过一个视图将临时表与其他相关表连接起来, 从而避免海量数据造成的连接效率问题.
本文只讨论使用存储过程返回结果集.
具体实现如下:
-- 启用服务器输出
---------------------
set serveroutput on
-- 创建测试表
---------------------
create table test_pkg_test
(
id number(10) constraint pk_test_pkg_test primary key,
name varchar2(30)
);
-- 写入测试数据
---------------------
begin
insert into test_pkg_test(id) values(1);
insert into test_pkg_test(id) values(2);
insert into test_pkg_test(id) values(3);
insert into test_pkg_test(id) values(4);
insert into test_pkg_test(id) values(5);
insert into test_pkg_test(id) values(6);
insert into test_pkg_test(id) values(7);
insert into test_pkg_test(id) values(8);
insert into test_pkg_test(id) values(9);
insert into test_pkg_test(id) values(10);
insert into test_pkg_test(id) values(11);
insert into test_pkg_test(id) values(12);
insert into test_pkg_test(id) values(13);
insert into test_pkg_test(id) values(14);
insert into test_pkg_test(id) values(15);
insert into test_pkg_test(id) values(16);
insert into test_pkg_test(id) values(17);
insert into test_pkg_test(id) values(18);
end;
/
update test_pkg_test set name='name of ' || to_char(id);
commit;
程序包
-- 声明程序包 --------------------- create or replace package pkg_test as type type_cursor is ref cursor; procedure read_rows (header varchar2, result out type_cursor); end pkg_test; / -- 实现程序包 --------------------- create or replace package body pkg_test as procedure read_rows (header varchar2, result out type_cursor) is sqlText varchar2(500); begin if header is null or length(header)=0 then sqlText := 'select * from test_pkg_test'; else sqlText := 'select * from test_pkg_test where substr(name,1,' || to_char(length(header)) || ')=''' || header || ''''; end if; --dbms_output.put_line(sqlText); open result for sqlText; end read_rows; end pkg_test; / -- 在 sqlplus 中测试 --------------------- var result refcursor exec pkg_test.read_rows(null,:result); print result exec pkg_test.read_rows('name of 1', :result); print result;
java调用
CallableStatement cstmt = c.prepareCall( "{call pkg_test.read_rows(?,?)}"); cstmt.registerOutParameter(1, OracleTypes.INTEGER); cstmt.registerOutParameter(2, OracleTypes.CURSOR); //cstmt.setInt(1, 1); cstmt.setInt(1,3); cstmt.execute(); rs = ((OracleCallableStatement) cstmt).getCursor(2); while (rs.next()) { System.out.print(rs.getString(1)+" "); System.out.println(rs.getString(2)); }
发表评论
-
orcale 常用练习
2011-07-04 08:52 1084(ORACLE-E-001)员工信息综合查询 1. 用 sq ... -
oracle 过程update 不成功的一个原因
2011-04-01 17:08 1899今天一个同事写oracle 的存储过程遇到了一个问题, ... -
oracle 季度
2011-03-29 14:31 1046-- 本季度第一天 SELECT to_char(TRUNC ... -
数据库常用查询
2011-03-10 13:54 874http://wt871031.blog.163.com/bl ... -
ORACLE JOB INTERVAL 参数设置
2011-03-10 13:04 2521------------------------------- ... -
plsql 设置
2010-11-28 16:06 1088E:\oracle\NETWORK\ADMIN\tnsname ... -
oracle 常用函数
2010-09-09 22:16 11031。上月末天: SQL> select to_char( ... -
Ibatis调用存储过程
2010-09-06 17:16 903Ibatis调用存储过程 procedure.xml的iba ... -
ibatis存储过程中,Oracle VARRAY自定义数据类型做IN参数的处理。
2010-09-06 17:07 1379(1)在oracle中有如下自定义数据类型。 create ... -
sql 语句
2010-09-06 15:49 1062select * from t where rownum ... -
导出表结构及数据
2010-06-09 21:58 982mssql2.rar -
过程1
2010-04-16 09:22 845create or replace procedure aut ... -
DECODE 实现表的转置
2010-04-15 21:50 2028数据库中的表是由列和 ... -
oracle 存储过程 一例
2010-04-15 16:53 1514CREATE OR REPLACE PACKAGE PY_PC ... -
转:Oracle递归查询
2010-04-12 17:46 2007有的情况下,我们需要用递归的方法整理数据,这才程序中很容易做到 ... -
oracle 数据字典
2010-04-10 12:58 1009select ID,BH,e.dictmean as BM,S ... -
oracle date日期类型
2010-04-09 16:47 1372insert into table_income valu ... -
mysql oracle sql server 分页
2010-04-06 08:57 1207SQL server分页: Sql代码 select t ... -
视图实例
2010-03-23 16:00 932CREATE or REPLACE view view_wil ... -
存储过程返回结果集
2010-03-23 15:31 1412存储过程返回OUT参数的游标 例子:每个学生求平均值的存储过 ...
相关推荐
该文档详细讲解Oracle在存储过程中如何利用Out参数返回一个结果集。示例简单易懂。
Java调用Oracle存储过程返回结果集Record、Cursor参照 Java调用Oracle存储过程返回结果集(Record)是指在Java程序中通过调用Oracle存储过程来获取记录集的结果。下面将详细介绍相关知识点。 创建Type 在Oracle中...
oracle的存储过程如何返回结果集 oracle的存储过程如何返回结果集 oracle的存储过程如何返回结果集
CallableStatement调用Oracle存储过程返回结果集(ResultSet).doc
Oracle 存储过程返回结果集
使用VB调用Oracle程序包内的存储过程返回结果集 使用VB调用Oracle程序包内的存储过程返回结果集
java调用oracle存储过程返回结果集,Record,cursor.[参考].pdf
大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,建立临时LOB。 大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,...
存储过程的返回结果集有2中类型:to caller(调用者),to client(客户应用)首先我们看一下声明这两种游标的例子:
C#中调用oracle存储过程返回数据集
oracle存储过程中,实现成绩分段显示人数,produce中带三个传入参数:起始分数(例如0),总分(例如100),分数间隔(例如10)。一个返回参数为游标,用来返回结果集。
oracle存储过程返回数据集,相比于sqlserver有些麻烦些,文档中有具体的实例说明,可以借鉴。
存储过程返回结果集
Spring jdbcTemplate 调用 Oracle 存储过程返回 List 集合 Spring jdbcTemplate 是一个强大的 JDBC 模板,提供了简洁的方式来访问数据库。在此文档中,我们将介绍如何使用 Spring jdbcTemplate 调用 Oracle 存储...
linq to sql 存储过程,返回结果集。但结果集和多结果集。
介绍了Delphi中调用oracle的存储过程返回数据集的各种方法
利用游标返回结果集的的例子(Oracle 存储过程).doc 利用游标返回结果集的的例子(Oracle 存储过程).doc 利用游标返回结果集的的例子(Oracle 存储过程).doc
使用hibernate的query调用oracle的存储过程/function,包含例子,源码以及数据库文件
。。。
。。。