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

--创建存储过程,返回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;

  

最新文章

  1. java--UDP屏幕广播代码
  2. mysql 查看存储引擎的状态 show engine innodb status 详解
  3. 【知识点】业务连接服务(BCS)认证概念整理
  4. Python求算数平方根和约数
  5. redo文件二
  6. 转:linux的源码查看, c++语法 查看网站
  7. C# 实现对窗体(Form)换肤
  8. MFC 窗口重绘问题
  9. UML学习(一)类图和对象图
  10. python中input()与raw_input()的区别到底是啥?-----marsggbo原创作品为你解答
  11. iOS安全攻防之越狱设备检测
  12. Vue源码后记-其余内置指令(1)
  13. GO语言从入门到放弃目录
  14. zeebe 集成elasticsearch exporter
  15. 【CSS学习】--- 文本水平对齐属性text-align和元素垂直对齐属性vertical-align
  16. Unity调用安卓Android的Toast
  17. 解题:CF1055F Tree and XOR
  18. js:Date格式化
  19. PHP实现一个ip(如:127.0.0.1)和多个域名(虚拟主机)的绑定
  20. [转载]利用近场探头和频谱仪查找EMI辐射问题

热门文章

  1. ollvm 新增字符串加密功能
  2. C中整数的溢出
  3. Vue内敛模板
  4. ubuntu服务器端使用无界面selenium+ chrome + headless
  5. linux上传与下载文件命令
  6. react-native学习(一)————使用react-native-tab-navigator创建底部导航
  7. OpenCV常用基本处理函数(7)图像金字塔和直方图
  8. MAS(转)
  9. 【缓存与性能优化】方法论:如何优化一个Web系统的性能
  10. 【Spring Boot】Spring Boot项目部署到外部Tomcat容器