全部 android asp.net C/C++ cshap IOS Java javascript nodejs perl php python ruby web容器 其他 前端 数据库 第三方平台 混合式APP 网络 系统 默认分类

oracle报表开发方案

0 64

PL/SQL也是一门语言,后台开发经常会用到。

目前做要到一个功能,关于“报表任务调度”,说明白了就是做几张报表,每天统计一次新数据,用于在PC页面上显示,我苦思冥想了几天,总结出三种方案。

开发环境:SSM+oracle(spring,spring MVC,mybatis + oracle)。

1、在pl/sql上,每张报表开发一个对应的储存过程,每个存储过程新建一个DBMS_JOB,按相关需求定时执行。

2、在pl/sql上,每张报表开发一个对应的储存过程,新建一张“报表信息表”,用于保存存储过程信息;紧接着新建额外的存储过程“报表任务调度过程”,在此存储过程里调用报表对应的存储过程,通过spring的定时任务(quartz)去定时调用存储过程“报表任务调度过程”。

备注:在存储过程==》“报表任务调度过程”调用报表存储过程如下

 V_COMMAND := 'BEGIN ' || V_RPT_PRO || '; END;'; (假设已经声明 V_COMMAND     VARCHAR2(300);) EXECUTE IMMEDIATE V_COMMAND    USING IN param1, OUT V_param2, OUT V_param1, OUT V_param2; --参数类型和传递顺序必须与存储过程中的保持一致

3、在pl/sql上,新建一个package,package bady里面开发报表对应的储存过程,加载到main里面,新建一个DBMS_JOB,定时执行JOB。

分析一下:

第一种方案比较容易理解,但比较麻烦,也不好维护。

第二种方案,流程是:spring调用“报表任务调度过程”,“报表任务调度过程”调用报表的存储过程,这样就不用新建DBMS_JOB,还能根据传入的参数来决定何时调用哪一个报表的存储过程,只要修改spring配置就能修改常用业务,便于管理,功能和业务也很好拓展和维护。

第三种方案,用包和统一管理存储过程,也比较好维护和拓展,而且只需要新建一个JOB来调用MAIN即可,在开发效率,管理和维护上,也是一种不错的选择。

分析完以上三种方案之后,根据现实情况,决定用第二种方案,理由是:系统是的B/S模式,很多功能都需要在页面上进行操作和管理,用第二种方案可以很直观的进行维护和管理。

热忱回答0

  • 加入年费大会员(20每年)
  • 热门标签

    猜你喜欢

    1. 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(上)
    2. 数据库设计概论
    3. mysql数据库主从同步
    4. 通过一步步创建sharded cluster来认识mongodb
    5. SQL Server中关于基数估计如何计算预估行数的一些探讨
    6. Mongodb安装启动详解
    7. $ORACLE_HOME变量值末尾多“/”惹的祸
    8. MySQL数据库设计总结
    9. 通过web sql实现增删查改
    10. MongoDB--在windows下的安装过程及基本配置

    衣食父母

    最近热帖

    1. 走进JavaScript——重拾对象 6
    2. 最近用django做了个在线数据分析小网站 6
    3. mysql之 mysqldump 备份恢复详解 7
    4. 深入理解Java常用类-----时间日期 7
    5. css重构之旅 8
    6. 分布式队列ZooKeeper的实现 6
    7. Java-面向对象总结 7
    8. 《HelloGitHub》第 14 期 8
    9. 压缩'语料库,即提取特征词或词频,做量化处理之后以“列向量”形式保存到数据库 8
    10. 【charger battery 充電 充電器 電池】過充保護警告訊息 over charging protection,Battery over voltage protection, warning message 7

    随机文章

    1. Jquery中的bind(),live(),delegate(),on()绑定事件方式
    2. 荒废了很久的java以及微信公众平台今天拿起来看了看:这里有很好的教程
    3. 先看这里
    4. 在egret、TypeScript中使用protobuf
    5. 总结一年来的前端学习心得