oracle报表开发方案

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模式,很多功能都需要在页面上进行操作和管理,用第二种方案可以很直观的进行维护和管理。

时间: 2024-11-05 18:41:39

oracle报表开发方案的相关文章

5、VS2010+ASP.NET MVC4+EF4+JqueryEasyUI+Oracle项目开发之——使用datagrid做报表统计

需要说明一点:数据库访问我使用的是EF框架,但是在报表统计着一块由于使用到了动态表,即根据每一天单独生成了一张数据表,所以不好使用EF进行预先添加,于是我在数据库访问层里面封装了两套数据库访问框架,一个就是EF,一个就是传统的ADO.NET.当设计到使用动态表时,我就调用用ADO.NET进行数据库访问操作了. 先看下View,这里我使用的是jquery easyUI里面的datagrid来做的报表.如下: 单击选中日报: 年报如下: @model YKT.Model.SubCompanyRepo

报表开发实例——动态多层次KPI钻取报表(I)

在报表项目中有时会有动态层次报表,而且还需要层次钻取的场景,开发难度较大.这里记录了使润乾集算报表开发<各级部门KPI报表>的过程. <各级部门KPI报表>初始状态如下图: 当前节点是根节点"河北省",要求报表显示当前节点的下一级节点"地市"汇总的KPI数值.Kpi又分为普通指标和VIP指标两类,共四项.如果点击"石家庄"来钻取的时候,要求能够将石家庄下一级的KPI汇总指标显示出来,如下图: 点击"中心区&quo

自定义数据源是报表开发的常态

报表项目中,大部分报表经过简单的设计.制作即可完成.但是,总有一部分复杂报表需要自定义数据集才能实现.自定义数据集是指报表的数据源不能通过简单SQL实现,需要用报表工具提供的API,调用项目组人员开发的程序来实现.这部分报表数量不多,但是编程.调试工作量较大,在整个项目中占用的时间反而更长. 那么为什么自定义数据集会成为报表项目的常态,会在每个项目中出现呢?如果是一定会出现,有没有更加高效的开发工具,让自定义数据集更容易实现呢? 我们知道,报表是由两部分组成的:数据计算和报表呈现.自定义报表出现

报表开发实例——动态多层次KPI钻取报表(II)

在报表开发实例--动态多层次KPI钻取报表(I)中,我们说到了动态层次报表需要层次钻取的场景,并介绍了利用oracle复杂sql的实现方法.这里仍然通过该报表来了解一下使用"脚本+本地文件"的开发方法. 各级部门KPI报表的格式和具体要求参见(I).有所不同的是,报表数据源从数据库表变为本地文件:tree.b(树形结构维表)和kpi.b(指标事实表),数据如下图: Tree文件数据 Kpi文件数据 Tree的叶子节点,通过id字段与kpi表关联.KPI文件每个ID每天都会新增kpi记录

MongoDB报表实例方案选型

MongoDB报表实例方案选型 背景介绍 在我们的生产环境使用的是复制集,为了将数据库服务器的业务压力分摊,我们将数据库拆分到了不同的复制集上运行. 我们在MongoDB复制集上运行应用程序,有时候有报表需求,常规用途是获得用户行为的分析,还有其他商业定制指标数据:有搜索引擎的查询需求,使用Solr从oplog.rs获取增量数据更新产品信息的索引. 这些报表查询和搜索引擎的查询需求,尽量不能影响到线上的业务正常运行,因此不能直接在生产数据库上运行报表.经过开发和运维讨论之后,在项目成立之初,计划

利用GoldenGate实现Oracle实时同步方案

利用GoldenGate实现Oracle实时同步方案 简介: OracleGolden Gate软件是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步.OracleGolden Gate可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,从而在可以在应急系统.在线报表.实时数据仓库供应.交易跟踪.数据同步.集中/分发.容灾.数据库升级和移

BI报表开发之环境搭建(二)

上一篇<BI报表开发之环境搭建(一)>中详细描述了SQL SERVER R2 的安装步骤,本篇将继续描述BI报表开发的环境搭建部分—— Orale数据库安装. <1>下载oracle-client_11g安装包(下载地址找不到啦) <2>解压后,运行安装程序,在出现的“配置安全更新”窗口中,取消“我希望通过My Oracle Support接受安全更新”,单击“下一步”: 在“安装选项”窗口中,选择“创建和配置数据库”,单击“下一步”: 在“系统类”窗口中,选择“桌面类

报表开发技巧之根据点击次数奇偶性排序之数值型

进行排序的时,很多时候我们可能想实现根据点击的次数进行升降序排序,也就是说点击第一次点击标题升序排序,再次点击就降序,以此类推,而不是通过选择升序进行升序排列,选择降序进行降序排列. 示例工具:报表开发工具FineReport 解决思路 由扩展后排序可知,可以根据参数值的不同来决定升序还是降序,这里也可以此思路进行实现,定义一个参数,如果参数值为1的时候,就升序,参数值为0的时候,按照数据列的负数进行升序排序,即数据列降序. 注:该方法只适用于排序数据列数据类型为数字型的字段,如果数据类型为字符

如何选择PHP项目的开发方案?

我说的项目开发方案并不是谈论到底用不用PHP去开发的问题,而是当你遇到一个项目,已经决定了用PHP,然后才来看的问题:用PHP的什么开发方案. 基本上有这么几种方案.各有各的说法,良莠不齐,我就谈谈我对它们利弊的认识,选择的时候也多个参考. 方案1:基于开源系统 常用的开源系统有:Discuz,PHPWind,PHPMyWind,PHPCMS,DedeCMS,Ecshop系列等. 这种方式是最偷懒的,也是初学者的首选.因为一个初学者或者不学技术的人也能在分分钟之内依葫芦画瓢的搭建出一个系统. 但