如果报表逻辑非常复杂的话, 可以把报表逻辑放到存储过程里,加工一个全局临时表。
前端查询的时候只查询临时表即可。只是第一次查询需要忍受加工的时间。

--创建存储过程,返回SYS_REFCURSOR
CREATE OR REPLACE PROCEDURE P_GET_AGENT(V_AGENT_CATE IN VARCHAR2,
V_PAGE IN INTEGER,
O_CURSOR OUT SYS_REFCURSOR) IS
BEGIN
INSERT INTO TMP_TAB_T_AGENT(AGENT_ID)
SELECT AGENT_ID FROM T_AGENT TA WHERE TA.AGENT_CATE = V_AGENT_CATE; OPEN O_CURSOR FOR
SELECT AGENT_ID
FROM (SELECT ROWNUM AS RN, AGENT_ID
FROM (SELECT AGENT_ID FROM TMP_TAB_T_AGENT ORDER BY AGENT_ID)
WHERE ROWNUM < V_PAGE * 10)
WHERE RN >= (V_PAGE - 1) * 10;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('wrong');
END; --调用存储过程,
DECLARE
V_CURSOR SYS_REFCURSOR;
V_AGENT_ID T_AGENT.AGENT_ID%TYPE;
BEGIN
-- Call the procedure
P_GET_AGENT(V_AGENT_CATE => '5', V_PAGE => 4, O_CURSOR => V_CURSOR); LOOP
FETCH V_CURSOR
INTO V_AGENT_ID;
EXIT WHEN V_CURSOR%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(V_AGENT_ID);
END LOOP; CLOSE V_CURSOR;
COMMIT;
END;

  

Oracle使用存储过程返回查询游标的更多相关文章

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

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

  2. Mybatis下配置调用Oracle自定义函数返回的游标结果集

    在ibatis和Mybatis对存储过程和函数函数的调用的配置Xml是不一样的,以下是针对Mybatis 3.2的环境进行操作的. 第一步配置Mapper的xml内容 <mapper names ...

  3. oracle ibatis 存储过程 返回游标 嵌套表

    自己解决问题了 问题总结: 1.index by表不能存储在数据库中的type中,故选择嵌套表. 2.ibatis不支持oracle的复合数据类型的返回.(个人理解) 3.替代方案:用返回oracle ...

  4. myabatis oracle 调用存储过程返回list结果集

    Mapper.xml 配置 <resultMap type="emp" id="empMap"> <id property="emp ...

  5. java 调用oracle 分页存储过程 返回游标数据集

    1.分页类 package org.zh.basic; /** * 页面类 * * @author keven * */ public class PageInfo { // 定义 private S ...

  6. oracle学习-存储过程返回一个值,和返回一个结果集

    一.返回一个值 --创建存储过程 create or replace procedure sp_hu_test(spcode in varchar2,spname out varchar2)is be ...

  7. 怎样让Oracle的存储过程返回结果集

    Oracle存储过程: CREATE OR REPLACE PROCEDURE getcity ( citycode IN VARCHAR2, ref_cursor OUT sys_refcursor ...

  8. Mysql中使用存储过程返回查询多个表的数据信息

    -- 测试手机号 call P_Base_CheckLogin('); -- 测试登录名 call P_Base_CheckLogin('sch000001') -- 测试身份证号 call P_Ba ...

  9. oracle存储过程返回结果集

    http://www.2cto.com/database/201204/127180.html oracle实现存储过程返回查询结果集合的方法   --实现存储过程返回查询结果集合的方法 ,以下代码来 ...

随机推荐

  1. 查看x86主機是否支援64bit in Linux

    $cat /proc/cpuinfo 查看flags 欄位中是否有 lm (long mode)

  2. UVA 11355 Cool Points( 极角计算 )

    We have a circle of radius R and several line segments situated within the circumference of this cir ...

  3. Java接口自动化测试实战笔记

    综述 代码管理工具Git 测试框架 TestNG 测试报告 Mock 接口框架 HTTP 协议接口 测试框架 HttpClient SprintBoot 自动化测试开发 数据持久层框架 MyBatis ...

  4. 面试题:实现call、apply、bind

    面试题:实现call.apply.bind 实现bind module.exports = function(Tcontext, ...args) { let globalThis = typeof ...

  5. RAD介绍及实战,LVM介绍及实战,磁盘常见故障

    目录 一.RAID 1.RAID好处: 2.RAID的运行方式: 3.RAID的级别: 二.RAID实战 软RAID 1.RAID0 2.RAID1 3.RAID5 4.RAID10 三.LVM介绍 ...

  6. Scratch 少儿编程

    作者:小码王在线少儿编程链接:https://www.zhihu.com/question/23418685/answer/762725469来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非 ...

  7. 【串线篇】mybatis-config.xml配置事项

    一.术语 properties 属性 settings 设置 typeAliases 类型命名 typeHandlers 类型处理器 objectFactory 对象工厂, plugins 插件, e ...

  8. python-列表list- 元组(tuple)- 集合(set)-字典(dict)-实例代码

    python 经常用的数据类型还有列表list- 元组(tuple)- 集合(set)-字典(dict),以下是这四种类型用法的简单示例. 1.列表list        [  ] 元素可变 , 有序 ...

  9. c# 定义operator运算符

    public void TestFunc() { Complex complex1 = new Complex(); Complex complex2 = new Complex(); var s = ...

  10. java html生成图片html2canvas,Canvas2Image

    <html> <div id="pic" style="margin-left: 500px;position:fixed;opacity:0;&quo ...