cognos调用存储过程
- 格式:docx
- 大小:217.56 KB
- 文档页数:2
金融大数据中心建设规划目录1、数据中心数据现状 (3)1.1 数据中心核心信息数据情况 (3)1.2 数据中心与外部系统信息交互情况 (4)1.3数据中心目前的数据存储情况 (4)2、数据中心系统现状 (5)2.1 系统架构 (5)2.2 功能描述 (5)2.3面临的问题 (6)3、项目建设目标 (6)3.1 业务目标 (6)3.1.1.建立数据模型分析平台,开展持卡人交易行为分析 (6)3.1.2.建立基于大数据平台的海量数据统计平台 (7)3.1.3.能满足对海量历史数据进行快速查询的要求 (7)3.2 技术目标 (7)1、数据中心数据现状1.1 数据中心核心信息数据情况数据中心对外展示功能主要基于业务数据查询平台,其主要功能包括:关键指标展示、多维分析、专题明细查询、常用数据浏览、静态报表下载以及部分业务参数管理和维护。
数据中心保存的数据主要包含三大类:交易流水类数据、商户档案类数据和汇总统计类数据,均为结构化数据。
1.2 数据中心与外部系统信息交互情况1.3数据中心目前的数据存储情况数据中心目前数据量情况为全库18T,其中流水类数据为10T包括综合流水(90亿条记录),新一代增值流水(FJNL),清分流水。
每日增量流水约1200万条记录。
商户信息数据按天保存,商户数约为300万,终端数约为480万。
每天数据量约为10G。
2、数据中心系统现状2.1 系统架构新一代流水、清分流水、结算流水和BMS商户数据分别以文本和oracle dmp格式通过ftp方式传输到数据中心服务器上,每天定时由批处理服务器通过批量框架(C++)调用批量过程按分支机构并发地将文件或DMP包导入数据库中。
并通过调用存储过程完成数据的清洗、关联、数据补齐工作。
批量过程完成元数据加工工作后,按各种业务维度按天、按月汇总交易数交易金额和收益等数据并生成关键指标数据。
目前数据中有各种维度的汇总统计表80余张。
完成汇总后,批量框架服务会根据关键指标数据生成cognos cube,并刷新cognos 服务;同时报表生成程序会根据中间汇总表生成预定的报表文件。
在撰写本篇文章时,我们将会一起探讨opengauss函数和存储过程的相同点和不同点。
这两个概念都是数据库中常见的工具,它们在处理数据和执行特定任务时都扮演着重要的角色。
在本文中,我将首先简要介绍opengauss函数和存储过程的定义和作用,然后逐步深入探讨它们的相同点和不同点,最后以我个人的观点和理解做出总结和回顾。
1. 定义和作用1.1 Opengauss函数:Opengauss函数是一段预先编译好的可重复使用的程序代码,用于完成特定的任务。
在opengauss中,函数可以接收参数并返回值,可以用于简化复杂的操作和提高代码的重用性。
1.2 存储过程:存储过程是一组经过编译并存储在数据库中的可重复执行的程序代码。
存储过程可以完成一系列的操作,并且可以接收输入参数和返回输出参数,使得数据库操作更加灵活和高效。
2. 相同点2.1 数据处理:Opengauss函数和存储过程都可以用于处理数据,对数据进行逻辑操作和计算。
2.2 可重用:两者都具有可重用性,可以被多次调用和执行,提高了代码的复用率和数据库的性能。
2.3 参数传递:Opengauss函数和存储过程都支持参数的传递,使得调用者可以向它们传递所需的数据进行处理。
3. 不同点3.1 返回结果:Opengauss函数通常用于返回单一的数值或结果集,而存储过程则可以返回多个结果集,使得更复杂的数据操作成为可能。
3.2 事务控制:存储过程可以包含事务控制的语句,而Opengauss函数通常不能包含这些语句,因此存储过程更适合处理复杂的事务操作。
3.3 触发器:存储过程可以用于创建触发器等数据库对象,而Opengauss函数则不能。
Opengauss函数和存储过程在数据处理、可重用性和参数传递等方面有相似之处,但在返回结果、事务控制和触发器方面存在显著的不同。
个人认为,在实际的数据库应用中,合理地使用这两种工具可以更好地发挥数据库的功能和性能。
为了更好地利用Opengauss函数和存储过程,我们需要充分理解它们的特点和适用场景,同时结合实际的业务需求进行选择和设计。
1. Data Source 连接错误,错误图示如下解决方法:在Sybase数据库配置的ODBC与客户端配置的ODBC名字要相同。
2.删除无用的Data Source。
解决方法:在门户网站删除,方法,进入门户,点击tool>>Directory DataSource选项卡,选中不需要的DataSource点击删除3.打开FM时出现的错误。
4.发布数据包后打开 Report Studio 时网页出现错误,无内容显示。
解决方法:允许IE插件里面的拦截弹出广告功能。
5.多表之间对应关系1..n还是1..1的错误。
解决方法:把对应关系改动,维度表为1:1,事实表为1:n 。
6.数据库动态更新后,再次显示报表,数据前后没有变化,增加的内容没有显示。
解决方法:一,关闭IE后,重新打开就能显示。
二,点击当前报表的属性,可以设置报表执行计划,每天还是每月的频率执行。
7.立方体时间维度的显示方式由英文改为中文如下。
8.同一网段安装了第二台Cognos8的服务器,在开发端,重新配置Cognos Configuration(服时,将IP改为新的服务器IP后,保存有错误,我们正常访问两台服务器的门户都能进去。
务器端采用的是Windows Server 2003)解决方法:(答案现在不确定,可能如下)把IE增强的安全配置的组件删除,或者安装IIS的时候不选此组件。
9.门户网站内打开立方体显示的工程名,可以在Framework Manager内修改。
10.Sybase数据库查询后,一定要commit,因为查询具有事务功能。
否则,事务不结束。
11.数据库无数据,则不能生成立方体。
12.立方体内不需要的时间删除,在 Powerplay Transformer编辑下处理。
13.安装Cognos8服务器时,采用Window Server 2003操作系统时,要将IIS的默认禁止的web服务打开。
14.安装Cognos8服务器时,服务器的信息存储在Oracle数据库内。
存储过程调用存储过程的方法总结第一种方法: 使用output参数USE AdventureWorks;GOIF OBJECT_ID ( 'p_GetList', 'P' ) IS NOT NULLDROP PROCEDURE p_GetList;GOCREATE PROCEDURE p_GetList @product varchar(40) , @maxprice money, @compareprice money OUTPUT, @listprice money OUTASSELECT AS Product, p.ListPrice AS 'List Price'FROM Production.Product pJOIN Production.ProductSubcategory sON p.ProductSubcategoryID = s.ProductSubcategoryIDWHERE LIKE @product AND p.ListPrice < @maxprice;-- Populate the output variable @listprice.SET @listprice = (SELECT MAX(p.ListPrice)FROM Production.Product pJOIN Production.ProductSubcategory sON p.ProductSubcategoryID = s.ProductSubcategoryIDWHERE LIKE @product AND p.ListPrice < @maxprice); -- Populate the output variable @compareprice.SET @compareprice = @maxprice;GO另一个存储过程调用的时候:Create Proc TestasDECLARE @compareprice money, @cost moneyEXECUTE p_GetList '%Bikes%', 700,@compareprice OUT,@cost OUTPUTIF @cost <= @comparepricePRINT 'These products can be purchased for less than$'+RTRIM(CAST(@compareprice AS varchar(20)))+'.'ENDELSEPRINT 'The prices for all products in this category exceed$'+ RTRIM(CAST(@compareprice AS varchar(20)))+'.'第二种方法:创建一个临时表create proc GetUserNameasbeginselect 'UserName'endCreate table #tempTable (userName nvarchar(50))insert into #tempTable(userName)exec GetUserNameselect #tempTable--用完之后要把临时表清空drop table #tempTable--需要注意的是,这种方法不能嵌套。
Cognos产品功能介绍Cognos产品构成系统物理结构共分为四层1.数据源层:包括业务数据库、数据集市、数据仓库、多维立方体以及其他来源的非关系型数据,作为查询统计分析的数据来源。
2.模型定义层:模型定义层可以分为两部份,一部分通过Cognos BI Modeling 将数据库在应用层定义为数据查询模型,定义的内容包括:数据库中的表字段在模型层被重新命名,重新组织,使其符合业务人员的逻辑;表及字段被赋予应用级安全性,保证恰当的人可以看到恰当的数据。
第二部分是将通过Cognos BI OLAP Modeling统计汇总数据按照业务逻辑生成多维立方体,将数据按照多维信息重新进行组织并且在应用层设置权限,使用户进行统计分析时得到较好的性能和灵活的查询组合方式。
3.应用服务器层:应用服务器层的Cognos BI Server for Reporting和Cognos BI Server for Analysis将在模型定义层中定义的模型和多维立方体通过Web Server进行发布展示。
需要注意的是,查询模型和多维立方体是可以通过“穿透钻取”有效的连接起来,使得分析—然后—查询的Cognos分析模式得到很好的体现。
4.浏览器层:企业用户可以通过浏览器无需任何插件来进行查询、统计分析,得到正确的信息。
对系统进行管理。
在整个系统中,Cognos主要如下产品:Cognos BI OLAP ModelingCognos BI Server for AnalysisCognos BI ModelingCognos BI Server for Reporting(1) BI OLAP ModelingBI OLAP Modeling是Cognos提供的企业级OLAP 模型设计工具,它将从各类数据源(数据库、数据仓库、平面文件)中筛选出来的数据创建成多维数据立方体。
立方体是按探察业务的OLAP多维因素分析模型的设计创建,通过对多维数据立方体的OLAP分析,用户可以辨明趋势、跟踪业务运作、创建高效的统计汇总报表。
cognos常见问题汇总Cognos常见问题汇总(1).Cube如何自动刷新?在cognos8中,如何自动更新cube呢?将类似于以下代码保存为.bat文件\Files\\cognos\\cer5\\bin\\trnsfrmr.exe\生产\\工作票合格率.pyi\其中n2表示显示执行过程窗口,n1表示最小化执行窗口,n表示不显示执行窗口.注意:powerplay transformer模型文件.pyi路径与数据立方体文件.mdc的生成路径要为同一目录.如果碰到生成之后数据不变,就要在powerplay transformer中的files-首选项菜单中设cube的临时目录,运行方式,可以直接双击.bat文件立刻生成新的cube,也可以用 cognos自带的Scheduler设置定时更新,当然也可以用windows自带的Scheduler(应该可以,没有试.)(2)oracle数据出错:ORA-12154:TNS:无法处理服务名是由于oracle没有配制好。
(3)我用transformer manager发布包mypackage后并生成iqd文件,在生成立方体的时候出现错误:Database Signon mypackage wasn't fount on the local machine.这是怎么回事?需本在配制文件congif.ini中添加数据源。
(4)我用framework manager发布包后,用query studio打开后为什么是这样的呀(点不开的,我是直接从数据库取数据发布包的,不是从cube). 不知其原因!晕倒,重装cognos解决.(5)怎么调用DTS包,让它执行,ASP、Java(JSP)、都行,怎么调用DTS包?可以用存储过程调,比较通用,调用DTS的方法 --存储过程方法:CREATE PROCEDURE my_proc1 ASEXEC master.dbo.xp_cmdshell 'dtsrun /S /E /N\包名称\/A\/A\文件.xls\数据库名\GOE:.net调用方式://说明需要添加 Microsoft.SqlServer.DTSPkg80.Package2Class ////// 运行DTS(Data Transformation Services )////// public string runDTS() { try {string returnValue;Microsoft.SqlServer.DTSPkg80.Package2Class package = newMicrosoft.SqlServer.DTSPkg80.Package2Class(); string fileName = \string password = null; string packageID = null; string versionID = null; string name = \object pVerpersistStfOfHost = null;package.LoadFromStorageFile(fileName,password,packageID,versionID,name,refpVerpersistStfOfHost); package.Execute(); package.UnInitialize();package=null;returnValue = \return returnValue; }catch(Exception ex) {throw ex; } }(6)如何使用模板技术?参照Report Studio的快速入门教程。
高斯存储过程1. 引言存储过程(Stored Procedure)是在关系数据库中,用过程化语言编写的一组预定义的程序。
通过存储过程,可以将一系列的SQL语句和逻辑操作封装在一个单独的单元中,以便实现代码的复用和模块化开发。
在数据库管理系统(DBMS)中,高斯存储过程是一种以高斯数据库为基础的存储过程,提供丰富的功能和高性能的数据处理能力。
2. 高斯存储过程的特点高斯存储过程具有以下几个特点:2.1 高性能高斯存储过程采用了一系列优化策略,在执行时能够充分利用数据库的内部资源,以提高数据处理的效率。
它可以预编译、缓存和重用SQL语句,减少了SQL语句的解析和优化时间,从而大幅度提升了处理速度。
2.2 安全性高斯存储过程可以在数据库端运行,不需要将敏感的数据传输到客户端。
这样可以避免对数据进行不安全的操作和传输,有效提升了数据的安全性。
高斯存储过程还可以对用户进行权限管理,只有具备相应权限的用户才能执行存储过程。
2.3 可靠性高斯存储过程支持事务处理,可以确保数据库的一致性和完整性。
通过将一组操作放在一个事务中执行,可以将数据库从一个一致的状态转换到另一个一致的状态。
如果事务执行过程中出现错误,高斯存储过程还可以自动回滚,保证数据的完整性。
2.4 可维护性高斯存储过程将复杂的业务逻辑封装在一个单独的存储过程中,有助于提高代码的可维护性。
如果需要修改业务逻辑,只需要修改存储过程的代码,而不需要修改所有调用该存储过程的代码。
这种模块化的开发方式能够提高代码的复用性,减少了重复的工作量。
3. 高斯存储过程的应用场景高斯存储过程在各种数据库应用中有着广泛的应用场景,下面列举了一些常见的应用场景:3.1 数据校验和数据清洗在数据录入过程中,往往需要对输入的数据进行有效性检查和清洗。
高斯存储过程可以在数据插入或更新时自动进行数据校验,确保数据的准确性和完整性。
例如,可以通过存储过程检查输入的电话号码是否符合规范,或者过滤掉包含非法字符的文本。
【delphi+oracle报表解决方案(一)】delphi中调用oracle的存储过程(分带返回游标,不返回值两种)关键字: delphi ,oracle存储过程,游标,返回数据集,报表注:delphi 6+ oracle 8.1.6一.创建包与包体1.附:建表aaclass为下面作测试用create table aaclass(CID V ARCHAR2(50), CNAME V ARCHAR2(50), pnumber NUMBER(10,0) );INSERT INTO aaclass values('c1', 'cn1', 10 ) ;INSERT INTO aaclass values('c2', 'cn2', 40 ) ;INSERT INTO aaclass values('c1', 'cn3', 30 ) ;commit;2.建包:CREATE OR REPLACE PACKAGE PKG_JCCTEST1 AStype rc_class is ref cursor;--求p1,p2的和与差,返回的多个值通过游标返回procedure GetSubAndSum2(p1 number,p2 number ,ResultCursor out rc_class);--查询满足条件的数据集,返回数据集通过游标返回procedure GetClass2(a in number,ResultCursor out rc_class ) ;--往表中插一条记录,不返回结果集时,本人用AdoQuery调用(adodataset好象要求必须返回结果集)procedure InsertClass( p_cid varchar2 ,p_cname varchar2 ,p_pnumber number) ;end PKG_JCCTEST1;3.建包体CREATE OR REPLACE PACKAGE BODY PKG_JCCTEST1procedure GetSubAndSum2(p1 number,p2 number ,ResultCursor out rc_class)ISBEGINopen ResultCursor forselect p1-p2 as "sum", p1+p2 as "sub" from dual;END ;procedure GetClass2(a in number,ResultCursor out rc_class ) isbeginopen ResultCursor forselect aaclass.* from aaclass where pnumber >a;end ;procedure InsertClass( p_cid varchar2 ,p_cname varchar2 ,p_pnumber number)begininsert into aaclass values(p_cid,p_cname,p_pnumber) ;-- commit;end ;二.在delphi中利用AdoDataSet调用上述第一个存储过程1.利用AdoConnection1连接数据库(驱动为oracle Provider for OLE DB),**并在连接字符串中加入这一节: PLSQLRSet=1; 如下所示:Provider=OraOLEDB.Oracle.1;Password=KXD;Persist Security Info=True;User ID=KXD;Data Source=TEST3;PLSQLRSet=12.在窗体上加AdoDataSet1 指明连接为上述AdoConnection1,下面可以放一个按钮,单击按钮就能调用第一步中创建的包过程,并返回数据集。
Cognos的详细的组件以及对应的功能描述平台独立性Cognos支持主流的UNIX和Windows,在各个平台上的功能没有任何区别。
Cognos的数据探查,分析,报表功能不依赖于任何第三方的支持,都能提供同样强大的功能和出色的表现。
2.安全认证Cognos具有统一的安全性认证机制,在Web方式下提供了完善的安全性认证,安全性能控制到报表单元格级别的访问。
同时Cognos的安全性还是一个开放的安全性系统,能够嵌入操作系统、网络域等多种企业现有的安全性方案中。
Cognos严密有效的安全性机制能有效保证企业数据的安全,为真正的企业级应用打下良好的基础。
3.元数据管理cognos具有一致,统一的元数据管理,同时在元数据层具有完备的安全性控制。
能够为整个企业提供一致的数据视图。
由管理员或高级用户定义元数据模型,管理种类繁多的字段、表连接、视图等等对象,并且元数据可以贯穿整个Cognos应用始终,便于最终用户探查细节数据。
能够平滑的适应从简单到复杂的应用环境。
4.开放的数据访问用户可以访问各种数据源,基于这些数据源制作报表,分析,这些数据源包括关系型数据库(IBM, Oracle, SQL, Teradata, Sybase, ODBC, etc.) Cognos Cube:Cognos PowerCubes, Cognos Planning Contributor Cubes, and Cognos Finance Cubes OLAP (Microsoft SQL Server Analysis Services, IBM DB2/OLAP, Hyperion Essbase 其它:XML, JDBC, LDAP, WSDL 对于关系型数据库的内容,也可以定义维度等内容,使用户能够像操作Cube一样对关系型数据库中数据进行分析。
同时ReportNet的强大报表功能也扩展到了OLAP数据源。
可直接通过Query Studio, Report Studio对OLAP数据源进行访问,生成查询和报表。
利用存储过程制作报表
1.存储过程的创建:
注意:这个存储过程不能只是一个计算入库的存储过程,必须有返回值,否则你将无法再前台cognos界面上接受到数据,
例如:
CREATE PROCEDURE "IDPDWDATA"."PRO_XDFH_RTJ" AT "PSIDP"
(param1 varchar(20))
as
begin
SELECT *
FROM "PSIDP"."IDPDWDATA"."电力_厂站_日统计"
where to_date("日期") =param1;
End
2.FM的创建:
这里我们需要注意的是给创建的模型建一个参数
3.Cognos制作:
注意必须要给参数传值
(1)创建一个和FM中参数相同的日期提示等(根据需求,值提示和文本提示都可以),必须是参数相同
(2)在提示页面或者是URL中用p_参数名(例如示例中的应该为p_rq=2013-08-15)。