CN108255967B - 存储过程的调用方法、装置、存储介质及终端 - Google Patents
存储过程的调用方法、装置、存储介质及终端 Download PDFInfo
- Publication number
- CN108255967B CN108255967B CN201711431187.0A CN201711431187A CN108255967B CN 108255967 B CN108255967 B CN 108255967B CN 201711431187 A CN201711431187 A CN 201711431187A CN 108255967 B CN108255967 B CN 108255967B
- Authority
- CN
- China
- Prior art keywords
- data
- report
- oracle database
- request
- storage process
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明适用于通信技术领域,提供了一种存储过程的调用方法、装置、存储介质及终端,所述方法包括:在Oracle数据库中创建报表响应函数,所述报表响应函数用于响应报表***的调用请求调用Oracle数据库中的存储过程;当获取到报表***发送的数据请求消息时,解析所述数据请求消息,获取请求参数;将所述请求参数传入所述报表响应函数,由所述报表响应函数调用所述请求参数对应的存储过程;执行所述存储过程以对Oracle数据库中的数据进行加工处理,读取加工处理后的数据,以响应所述报表***的数据请求;本发明解决了现有技术中报表***无法调用Oracle数据库中的存储过程、数据更新效率慢的问题。
Description
技术领域
本发明属于通信技术领域,尤其涉及一种存储过程的调用方法、装置、存储介质及终端。
背景技术
Pentaho是目前最流行的开源商务智能软件,是以工作流为核心、强调面向解决方案而非工具组件的BI套件,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理、分类、回归、聚类、关联规则分析,以及在交互式界面上可视化数据。然而,现有的BI报表工具没有承载数据加工的功能。Pentaho报表***主要使用HSQLDB数据库作为资料库,每天仅对资料库更新一次。当用户在Pentaho报表***上查看数据时,由于HSQLDB的更新效率慢,用户无法及时获取到最新的数据。可见,现有技术中Pentaho报表***无法满足用户动态查看最新数据的需求。
发明内容
本发明实施例提供了一种存储过程的调用方法、装置、存储介质及终端,以解决现有技术中报表***的数据更新效率慢、无法满足用户动态查看最新数据的问题。
本发明实施例提供了一种存储过程的调用方法,所述调用方法包括:
在Oracle数据库中创建报表响应函数,所述报表响应函数用于响应报表***的调用请求调用Oracle数据库中的存储过程;
当获取到报表***发送的数据请求消息时,解析所述数据请求消息,获取请求参数;
将所述请求参数传入所述报表响应函数,由所述报表响应函数启动所述请求参数对应的存储过程;
执行所述存储过程以对Oracle数据库中的数据进行加工处理,读取加工处理后的数据,以响应所述报表***的数据请求。
进一步地,所述执行所述存储过程以对Oracle数据库中的数据进行加工处理,读取加工处理后的数据,以响应所述报表***的数据请求包括:
执行所述存储过程以对Oracle数据库中的数据进行加工处理;
根据所述请求参数从Oracle数据库中获取待读取的主表;
从所述主表中读取目标数据,将所读取的目标数据写入至从表中,生成适用于所述报表***的报表数据;
将所述报表数据发送至所述报表***,以使得所述报表***接收并展示所述报表数据。
进一步地,所述数据请求消息中包括待调用的存储过程名、待请求的维度信息、请求日期、定时查询时间。
进一步地,所述从所述主表中读取目标数据,将所读取的目标数据写入至从表中,生成适用于所述报表***的报表数据,之后还包括:
从所述请求参数中获取存储过程名,根据所述存储过程名获取所述存储过程的结构化查询语言SQL代码;
基于所述SQL代码生成校验指令;
根据所述校验指令校验所述报表数据中的内容与所述主表的记录是否一致,若一致,则将所述报表数据返回至所述报表***。
进一步地,所述数据请求消息中还包括用户账号;
所述当获取到报表***发送的数据请求消息时,解析所述数据请求消息,之后还包括:
获取所述用户账号;
基于预设的授权表校验所述用户账号是否具备处理权限;
若是,则从所述数据请求消息中获取请求参数;
若否,则生成未授权提示消息,将所述未授权提示消息发送至所述报表***。
本发明实施例还提供了一种存储过程的调用装置,所述调用装置包括:
创建模块,用于在Oracle数据库中创建报表响应函数,所述报表响应函数用于响应报表***的调用请求调用Oracle数据库中的存储过程;
获取模块,用于当获取到报表***发送的数据请求消息时,解析所述数据请求消息,获取请求参数;
启动模块,用于将所述请求参数传入所述报表响应函数,由所述报表响应函数启动所述请求参数对应的存储过程;
执行模块,用于执行所述存储过程以对Oracle数据库中的数据进行加工处理,读取加工处理后的数据,以响应所述报表***的数据请求。
进一步地,所述执行模块包括:
加工单元,用于执行所述存储过程以对Oracle数据库中的数据进行加工处理;
第一获取单元,用于根据所述请求参数从Oracle数据库中获取待读取的主表;
第一生成单元,用于从所述主表中读取目标数据,将所读取的目标数据写入至从表中,生成适用于所述报表***的报表数据;
发送单元,用于将所述报表数据发送至所述报表***,以使得所述报表***接收并展示所述报表数据。
进一步地,所述数据请求消息中还包括用户账号;
所述调用装置还包括:
校验模块,用于获取所述用户账号,基于预设的授权表校验所述用户账号是否具备处理权限;
所述获取模块式用于在校验模块的校验结果为是时,从所述数据请求消息中获取请求参数;
提示模块,用于在校验模块的校验结果为否时,生成未授权提示消息,将所述未授权提示消息发送至所述报表***。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序由处理器执行时实现如上所述的存储过程的调用方法所述的步骤。
本发明实施例还提供了一种终端,所述终端包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的存储过程的调用方法所述的步骤。
与现有技术相比,本发明实施例在Pentaho报表***中集成了对Oracle数据库的调用功能,通过在Oracle数据库中增加创建报表响应函数,以通过所述报表响应函数来响应报表***对存储过程的调用请求;当获取到报表***发送的数据请求消息时,解析所述数据请求消息,获取请求参数;将所述请求参数传入所述报表响应函数,由所述报表响应函数启动所述请求参数对应的存储过程;执行所述存储过程以对Oracle数据库中的数据进行加工处理,读取加工处理后的数据,以响应所述报表***的数据请求;从而实现了在报表***中调用Oracle数据库中的存储过程,且由于Oracle数据库对数据的更新效率更快,通过存储过程从Oracle数据库中可以读出最新的数据,有效地解决了现有技术中报表***的数据更新效率慢、无法满足用户动态查看最新数据的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1是本发明实施例提供的存储过程的调用方法的第一实现流程图;
图2是本发明实施例提供的存储过程的调用方法的第二实现流程图;
图3是本发明实施例提供的存储过程的调用方法的第三实现流程图;
图4是本发明实施例提供的存储过程的调用方法的第四实现流程图;
图5是本发明实施例提供的存储过程的调用装置的组成结构图;
图6是本发明实施例提供的终端的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在现有技术中,Pentaho报表***主要使用HSQLDB数据库作为资料库,每天仅对资料库更新一次。当用户在Pentaho报表***上查看数据时,由于HSQLDB的更新效率慢,用户无法及时获取到最新的数据。Oracle数据库通过存储过程对数据进行加工,其数据更新效率更快。然而Pentaho报表***是一个报表查询工具,只对接数据表,现有功能中并不支持对Oracle数据库中的存储过程的调用。为了实现用户动态查看最新数据的需求,提出本发明实施例所述的存储过程的调用方法。
实施例1
图1示出了本发明实施例提供的存储过程的调用方法的第一实现流程。
在本发明实施例中,所述存储过程的调用方法应用于终端,包括但不限于计算机、服务器等。
参阅图1,所述存储过程的调用方法包括:
在步骤S101中,在Oracle数据库中创建报表响应函数,所述报表响应函数用于响应报表***的调用请求调用Oracle数据库中的存储过程。
在本发明实施例中,所述报表***为Pentaho报表***。所述Oracle数据库为与所述Pentaho报表***相关的数据库,里面存储有多种表信息及表数据。Oracle数据库中通常具备多个原生的存储过程,这些存储过程是指一组为了完成特定能的SQL语句集,经过第一次编译后再次调用不需再次编译,通过函数指定存储过程的名字并给出参数来执行它。在本发明实施例中,所述报表响应函数通过响应Pentaho报表***的调用请求,来调用Oracle数据库中的存储过程,以实现对Pentaho报表***中的数据加工处理。
可选地,要实现对Pentaho报表***的响应需要在Oracle数据库和在Pentaho报表***两个方面进行编码。其中,在Oracle数据库中,需要在Oracle服务器上部署一个响应Pentaho报表的程序,即步骤S101中所述的报表响应函数。在Pentaho报表***中,则增加请求启动所述报表响应函数的功能及启动标识,设置参数输入界面;以及向Oracle服务器返回调用过程中的日志。可选地,可以在Pentaho报表***上引入开源数据交换工具Kettle,来实现从报表层面上调度存储过程的功能。
在步骤S102中,当获取到报表***发送的数据请求消息时,解析所述数据请求消息,获取请求参数。
在这里,用户在Pentaho报表***上查看报表时,可以通过触发所述启动标识以请求启动所述报表响应函数,并输入请求参数。Pentaho报表***获取所述启动标识触发的请求指令及请求参数,基于所述请求参数生成所述数据请求消息,并发送至所述Oracle数据库。
所述Oracle数据库接收并解析所述数据请求消息,得到请求参数。可选地,所述请求参数包括但不限于待调用的存储过程名、待请求的维度信息、请求日期、定时查询时间。其中,所述存储过程名为待调用的存储过程的名字loadtable,如Defaultvalue=PRG_APV_REPORT_V2.PERSONAL_REPORT_EN_STATIC。所述维度信息为待请求报表中的待请求字段,由用户在Pentaho报表***上配置产生,包括但不限于比如报表中的姓名字段、年龄字段、ID字段、身份证号字段,以字符串组合所有显示的参数值,如
concatenate([start_date];";";[end_tate];";";CSVTEXT([id];0;",";""))。所述定时查询时间为报表响应函数调用存储过程的时间,用于报表响应函数何时调用存储过程进行数据更新。用户通过设置所述定时查询时间,可以自定义从Oracle数据库中读取数据的时间间隔及频率。
在步骤S103中,将所述请求参数传入所述报表响应函数,由所述报表响应函数启动所述请求参数对应的存储过程。
在获取到请求参数之后,报表响应函数根据所述请求参数中的存储函数名获取目标过程,将待请求的维度信息传入所述目标过程,以启动所述目标过程,从而实现在Pentaho报表***上调用Oracle数据库中的存储过程,实现了BI报表工具对Oracle存储过程的调用。在这里,所述存储过程为Oracle数据库中原生的存储过程,能够根据业务逻辑对Oracle数据库中的数据进行加工处理,比如增、删、改操作。Oracle数据库可以通过表的方式来记录所有的存储过程,所述报表响应函数则根据请求参数从所述表中读取对应的存储过程进行触发。
在步骤S104中,执行所述存储过程以对Oracle数据库中的数据进行加工处理,读取加工处理后的数据,以响应所述报表***的数据请求。
Oracle数据库执行所述目标过程,即调用存储过程,由所述存储过程根据所述请求参数对Oracle数据库中的数据进行加工处理,然后从Oracle数据库所存储的报表中读取加工处理后的数据,以完成对Pentaho报表***的数据请求的响应。在Oracle数据库完成数据读取后,用户可以在Pentaho报表***中进行查看。
综上所述,由于Oracle数据库可以自助更新数据,并进行存储,而不依赖于Pentaho报表***。本发明实施例通过所述报表响应函数,在Pentaho报表***的现有功能中增加了对Oracle数据库中的存储过程的调用,以对数据进行加工处理,从而使得用户可以在Pentaho报表***上通过该新增加的功能从Oracle数据库中获取到最新的报表数据,解决了现有技术中报表***的数据更新效率慢导致的无法满足用户动态查看最新数据的问题。
进一步地,基于图1提供的存储过程的调用方法的第一实现流程的基础上,提出本发明实施例提供的存储过程的调用方法的第二实现流程。
如图2所示,是本发明实施例提供的存储过程的调用方法的第二实现流程图,所述步骤S104执行所述存储过程以对Oracle数据库中的数据进行加工处理,并读取加工处理后的数据,以响应所述报表***的数据请求包括:
在步骤S1041中,执行所述存储过程以对Oracle数据库中的数据进行加工处理。
在步骤S1042中,根据所述请求参数从Oracle数据库中获取待读取的主表。
如前所述,所述数据请求消息中的请求参数包括但不限于待调用的存储过程名、待请求的维度信息、请求日期、定时查询时间。Oracle执行存储过程时,根据所述待请求的维度信息确定相关的表信息,得到待读取的主表。
在步骤S1043中,从所述主表中读取目标数据,将所读取的目标数据写入至从表中,生成适用于所述报表***的报表数据。
在这里,所述存储过程使用select语句从所述主表中查找所述待请求的维度信息对应的字段值,得到目标数据,创建从表,保存返回的结果集,即将所述目标数据复制到从表中。最后基于所述从表生成Pentaho报表***适用的报表数据。所述Pentaho报表***适用的报表数据应当理解为所述Pentaho报表***能够解析并调用展示所述报表数据。
在步骤S1044中,将所述报表数据发送至所述报表***,以使得所述报表***接收并展示所述报表数据。
将所述报表数据发送至Pentaho报表***,供用户进行查看,从而实现了在Pentaho报表***中支持及调用Oracle数据库中的存储过程。需要注意地时,本发明实施例是基于Oracle数据库完成数据的更新及读取,基于Pentaho报表***中查看数据,利用Oracle数据库的更新频率快,从表写入的目标数据为Oracle数据库中最新的字段值,使得改进之后的Pentaho报表***能够满足用户动态查看报表***中的最新数据的需求。
进一步地,基于图2提供的存储过程的调用方法的第二实现流程的基础上,提出本发明实施例提供的存储过程的调用方法的第三实现流程。
如图3所示,是本发明实施例提供的存储过程的调用方法的第三实现流程图,所述步骤S104执行所述存储过程以对Oracle数据库中的数据进行加工处理,并读取加工处理后的数据,以响应所述报表***的数据请求包括:
在步骤S104a中,执行所述存储过程以对Oracle数据库中的数据进行加工处理。
在步骤S104b中,根据所述请求参数从Oracle数据库中获取待读取的主表。
在步骤S104c中,从所述主表中读取目标数据,将所读取的目标数据写入至从表中,生成所述报表***适用的报表数据。
其中,步骤S104a至步骤S104c与图2实施例中所述的步骤S1041至步骤S1043相同,具体请参见上述实施例的叙述,此处不再赘述。
在所述步骤S104c之后还包括:
在步骤S104d中,从所述请求参数中获取存储过程名,根据所述存储过程名获取所述存储过程的结构化查询语言SQL代码。
在获取到存储过程名之后,从Oracle服务器中筛选出与所述存储过程名对应的存储过程,并通过标准接口获取所述存储过程对应的SQL代码。
在步骤S104e中,基于所述SQL代码生成校验指令。
对所述SQL代码进行解析,识别出关键字,包括但不限于所述SQL代码中记载的主表、从表、维度信息。基于所述关键字生成校验指令。
在步骤S104f中,根据所述校验指令校验所述报表数据中的内容与所述主表的记录是否一致。
在这里,校验所述报表数据中的内容与所述主表的记录信息是否一致可以为:在主表和报表数据中对每一条记录做字段长度的求和,然后根据主键比较,判断从表中的每条记录与主表中的记录信息是否一致,从而查看从主表复制到从表的数据是否正确,即确定报表数据中的每条记录是否正确。可选地,所述字段长度求和可以采用lengthb方法进行。
在通过校验之后,若从表中每条记录与主表的记录一致时,从而可以确定所述报表数据是正确的,执行步骤S104g。否则,若所述从表中存在于主表不一样的记录,则重新执行步骤S104a,再次进行读表和写表操作。
在步骤S104g中,将所述报表数据发送至所述报表***,以使得所述报表***接收并展示所述报表数据。
其中,步骤S104g与图2实施例中所述的步骤S1044相同,具体请参见上述实施例的叙述,此处不再赘述。
本发明实施例通过在输出报表数据到Pentaho报表***之前,增加对从主表复制过来的数据进行校验,保证了Pentaho报表***上输出的报表数据的准确性,提高了用户体验感。
进一步地,基于图1提供的存储过程的调用方法的第一实现流程的基础上,提出本发明实施例提供的存储过程的调用方法的第四实现流程。
如图4所示,是本发明实施例提供的存储过程的调用方法的第四实现流程图。所述调用方法包括:
在步骤S401中,在Oracle数据库中创建报表响应函数,所述报表响应函数用于响应报表***的调用请求调用Oracle数据库中的存储过程。
在步骤S402中,当获取到报表***发送的数据请求消息时,解析所述数据请求消息。
其中,步骤S401至步骤S402与图1实施例中所述的步骤S101至步骤S102相同,具体请参见上述实施例的叙述,此处不再赘述。
所述调用方法还包括:
在步骤S403中,获取所述用户账号。
在本发明实施例中,所述用户账号为用户登录并使用Oracle数据库的凭证。其中,执行存储过程的用户具备一定的数据操作权限才能使用存储过程,没有数据操作权限的用户只能在其控制下间接的存取数据。
在本发明实施例中,所述数据请求消息中还可以包括用户账号。如前所述,用户可以在Pentaho报表***上查看报表,通过触发所述报表响应函数的启动标识,输入请求参数。Pentaho报表***获取所述启动标识触发的请求指令及请求参数,并获取所述用户在所述Pentaho报表***上的用户账号,基于所述请求参数、用户账号生成所述数据请求消息,并发送至所述Oracle数据库。Oracle数据库接收到所述数据请求消息后,进行解析,获取用户账号。
在步骤S404中,基于预设的授权表校验所述用户账号是否具备处理权限。
在这里,所述用户账号既是Oracle数据库上的用户凭证,也是Pentaho报表***上的用户凭证。本发明实施例预先将Pentaho报表***上的指定的具有数据操作权限的用户凭证导入至所述Oracle数据库中。
所述Oracle数据库中通过授权表的方式,维护着具有数据操作权限的用户账号集合。在所述授权表中记录的用户账号均具备触发所述报表响应函数的权限,从而具备使用Oracle数据库中的存储过程的权限。
所述步骤S404可以通过查询预设的授权表是否包括所述用户账号,来判断该用户账号是否具备处理权限。若是,则执行步骤S405;否则,执行步骤S408。
在步骤S405中,从所述数据请求消息中获取请求参数。
当且仅当所述授权表中包括当前用户的用户账号,即所述用户账号具备处理权限时,本发明实施例从所述数据请求消息中获取请求参数。
在步骤S406中,将所述请求参数传入所述报表响应函数,由所述报表响应函数启动所述请求参数对应的存储过程。
在步骤S407中,执行所述存储过程以对Oracle数据库中的数据进行加工处理,读取加工处理后数据,以响应所述报表***的数据请求。
其中,步骤S406至步骤S407与图1实施例中所述的步骤S103至步骤S104相同,具体请参见上述实施例的叙述,此处不再赘述。
在步骤S408中,生成未授权提示消息,将所述未授权提示消息发送至所述报表***。
若所述授权表中未包括当前用户的用户账号,表明所述用户账号不具备处理权限,此时,本发明实施例根据所述用户账号生成未授权提示消息,并向所述Pentaho报表***返回所述未授权提示消息,以使得所述Pentaho报表***根据所述未授权提示消息输出告警信息,并终断本次数据查询或者数据更新操作。
本发明实施例通过在Oracle数据库中维护授权表,对报表响应函数的使用权限进行限定,进一步提高了在Pentaho报表***上调用存储过程的安全性。
应理解,在上述实施例中,各步骤的序号的大小并不意味着执行顺序的先后,各步骤的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例2
图5示出了本发明实施例提供的存储过程的调用装置的组成结构图,为了便于说明,仅示出了与本发明实施例相关的部分。
在本发明实施例中,所述存储过程的调用装置用于实现上述图1、图2、图3、图4实施例中所述的存储过程的调用方法,可以是内置于服务器的软件单元、硬件单元、软硬件结合的单元。
参阅图5,所述存储过程的调用装置包括:
创建模块51,用于在Oracle数据库中创建报表响应函数,所述报表响应函数用于响应报表***的调用请求调用Oracle数据库中的存储过程;
获取模块52,用于当获取到报表***发送的数据请求消息时,解析所述数据请求消息,获取请求参数;
启动模块53,用于将所述请求参数传入所述报表响应函数,由所述报表响应函数启动所述请求参数对应的存储过程;
执行模块54,用于执行所述存储过程以对Oracle数据库中的数据进行加工处理,读取加工处理后的数据,以响应所述报表***的数据请求。
可选地,所述执行模块54包括:
加工单元541,用于执行所述存储过程以对Oracle数据库中的数据进行加工处理;
第一获取单元542,用于根据所述请求参数从Oracle数据库中获取待读取的主表;
第一生成单元543,用于从所述主表中读取目标数据,将所读取的目标数据写入至从表中,生成适用于所述报表***的报表数据;
发送单元544,用于将所述报表数据发送至所述报表***,以使得所述报表***接收并展示所述报表数据。
可选地,所述数据请求消息中包括但不限于待调用的存储过程名、待请求的维度信息、请求日期、定时查询时间。
可选地,所述执行模块54还包括:
第二获取单元545,用于从所述请求参数中获取存储过程名,根据所述存储过程名获取所述存储过程的结构化查询语言SQL代码;
第二生成单元546,用于基于所述SQL代码生成校验指令;
校验单元547,用于根据所述校验指令校验所述报表数据中的内容与所述主表的记录是否一致,若一致,则将所述报表数据返回至所述报表***。
可选地,所述数据请求消息中还可以包括用户账号;所述调用装置还包括:
校验模块55,用于获取所述用户账号,基于预设的授权表校验所述用户账号是否具备处理权限;
所述获取模块52还用于在校验模块的校验结果为是时,从所述数据请求消息中获取请求参数;
提示模块56,用于在校验模块的校验结果为否时,生成未授权提示消息,将所述未授权提示消息发送至所述报表***。
需要说明的是,本发明实施例中的各模块/单元可以用于实现上述方法实施例中的全部技术方案,其具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
实施例3
本实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现实施例1中存储过程的调用方法,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现实施例2中存储过程的调用装置中各模块/单元的功能,为避免重复,这里不再赘述。
实施例4
图6是本发明实施例提供的一种终端的示意图,所述终端包括但不限于服务器、移动终端。如图6所示,该实施例的终端6包括:处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机程序62。所述处理器60执行所述计算机程序62时实现上述存储过程的调用方法实施例中的步骤,例如图1所示的步骤S101至S104、图2实施例中所述的步骤S1041至S1044、图3实施例中所述的步骤S104a至S104g、图4实施例中所述的步骤S401至S408;或者,所述处理器60执行所述计算机程序62时实现上述存储过程的调用装置实施例中各模块/单元的功能,例如图5所示模块51至56的功能。
示例性的,所述计算机程序62可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器61中,并由所述处理器60执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序62在所述终端6中的执行过程。例如,所述计算机程序62可以被分割成创建模块、获取模块、调用模块、执行模块,各模块具体功能如下:
创建模块,用于在Oracle数据库中创建报表响应函数,所述报表响应函数用于响应报表***的调用请求调用Oracle数据库中的存储过程;
获取模块,用于当获取到报表***发送的数据请求消息时,解析所述数据请求消息,获取请求参数;
启动模块,用于将所述请求参数传入所述报表响应函数,由所述报表响应函数启动所述请求参数对应的存储过程;
执行模块,用于执行所述存储过程以对Oracle数据库中的数据进行加工处理,读取加工处理后的数据,以响应所述报表***的数据请求。
所述终端6可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是终端6的示例,并不构成对终端6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端还可以包括输入输出设备、网络接入设备、总线等。
所称处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述终端的控制中心,利用各种接口和线路连接整个终端的各个部分。
所述存储器61可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述终端的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘、智能存储卡(Smart MediaCard,SMC)、安全数字卡(Secure Digital,SD)、闪存卡(Flash Card),至少一个磁盘存储器件、闪存器件或其他易失性固态存储器件。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (8)
1.一种存储过程的调用方法,其特征在于,所述调用方法包括:
在Oracle数据库中创建报表响应函数,所述报表响应函数用于响应报表***的调用请求调用Oracle数据库中的存储过程,所述报表***是指Pentaho报表***;
当获取到报表***发送的数据请求消息时,解析所述数据请求消息,获取请求参数;
将所述请求参数传入所述报表响应函数,由所述报表响应函数启动所述请求参数对应的存储过程,实现在Pentaho报表层面上调度Oracle数据库中的存储过程的功能;
执行所述存储过程以对Oracle数据库中的数据进行加工处理,读取加工处理后的数据,以响应所述报表***的数据请求;
所述执行所述存储过程以对Oracle数据库中的数据进行加工处理,读取加工处理后的数据,以响应所述报表***的数据请求包括:
执行所述存储过程以对Oracle数据库中的数据进行加工处理;
根据所述请求参数从Oracle数据库中获取待读取的主表;
从所述主表中读取目标数据,将所读取的目标数据写入至从表中,生成适用于所述报表***的报表数据;
将所述报表数据发送至所述报表***,以使得所述报表***接收并展示所述报表数据。
2.如权利要求1所述的存储过程的调用方法,其特征在于,所述数据请求消息中包括待调用的存储过程名、待请求的维度信息、请求日期、定时查询时间。
3.如权利要求2所述的存储过程的调用方法,其特征在于,所述从所述主表中读取目标数据,将所读取的目标数据写入至从表中,生成适用于所述报表***的报表数据,之后还包括:
从所述请求参数中获取存储过程名,根据所述存储过程名获取所述存储过程的结构化查询语言SQL代码;
基于所述SQL代码生成校验指令;
根据所述校验指令校验所述报表数据中的内容与所述主表的记录是否一致,若一致,则将所述报表数据返回至所述报表***。
4.如权利要求1至3任一项所述的存储过程的调用方法,其特征在于,所述数据请求消息中还包括用户账号;
所述当获取到报表***发送的数据请求消息时,解析所述数据请求消息,之后还包括:
获取所述用户账号;
基于预设的授权表校验所述用户账号是否具备处理权限;
若是,则从所述数据请求消息中获取请求参数;
若否,则生成未授权提示消息,将所述未授权提示消息发送至所述报表***。
5.一种存储过程的调用装置,其特征在于,所述调用装置包括:
创建模块,用于在Oracle数据库中创建报表响应函数,所述报表响应函数用于响应报表***的调用请求调用Oracle数据库中的存储过程,所述报表***是指Pentaho报表***;
获取模块,用于当获取到报表***发送的数据请求消息时,解析所述数据请求消息,获取请求参数;
启动模块,用于将所述请求参数传入所述报表响应函数,由所述报表响应函数启动所述请求参数对应的存储过程,实现在Pentaho报表层面上调度Oracle数据库中的存储过程的功能;
执行模块,用于执行所述存储过程以对Oracle数据库中的数据进行加工处理,读取加工处理后的数据,以响应所述报表***的数据请求;
所述执行模块包括:
加工单元,用于执行所述存储过程以对Oracle数据库中的数据进行加工处理;
第一获取单元,用于根据所述请求参数从Oracle数据库中获取待读取的主表;
第一生成单元,用于从所述主表中读取目标数据,将所读取的目标数据写入至从表中,生成适用于所述报表***的报表数据;
发送单元,用于将所述报表数据发送至所述报表***,以使得所述报表***接收并展示所述报表数据。
6.如权利要求5所述的存储过程的调用装置,其特征在于,所述数据请求消息中还包括用户账号;
所述调用装置还包括:
校验模块,用于获取所述用户账号,基于预设的授权表校验所述用户账号是否具备处理权限;
所述获取模块还用于在校验模块的校验结果为是时,从所述数据请求消息中获取请求参数;
提示模块,用于在校验模块的校验结果为否时,生成未授权提示消息,将所述未授权提示消息发送至所述报表***。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序由处理器执行时实现权利要求1至4任一项所述的存储过程的调用方法所述的步骤。
8.一种终端,所述终端包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上述权利要求1至4任一项所述的存储过程的调用方法所述的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711431187.0A CN108255967B (zh) | 2017-12-26 | 2017-12-26 | 存储过程的调用方法、装置、存储介质及终端 |
PCT/CN2018/081037 WO2019127956A1 (zh) | 2017-12-26 | 2018-03-29 | 存储过程的调用方法、装置、存储介质及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711431187.0A CN108255967B (zh) | 2017-12-26 | 2017-12-26 | 存储过程的调用方法、装置、存储介质及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108255967A CN108255967A (zh) | 2018-07-06 |
CN108255967B true CN108255967B (zh) | 2021-03-02 |
Family
ID=62723882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711431187.0A Active CN108255967B (zh) | 2017-12-26 | 2017-12-26 | 存储过程的调用方法、装置、存储介质及终端 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108255967B (zh) |
WO (1) | WO2019127956A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992259B (zh) * | 2019-04-15 | 2020-10-30 | 成都四方伟业软件股份有限公司 | 函数动态创建方法、装置及电子设备 |
CN110968625A (zh) * | 2019-10-10 | 2020-04-07 | 望海康信(北京)科技股份公司 | SQLserver数据库与第三方平台交互的方法及*** |
CN112131846B (zh) * | 2020-09-07 | 2024-06-04 | 北京思特奇信息技术股份有限公司 | 一种基于映射关系进行传参的方法及***、电子装置、存储介质 |
CN113765876B (zh) * | 2020-11-30 | 2023-09-26 | 北京沃东天骏信息技术有限公司 | 报表处理软件的访问方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8516062B2 (en) * | 2010-10-01 | 2013-08-20 | @Pay Ip Holdings Llc | Storage, communication, and display of task-related data |
CN104461531A (zh) * | 2014-12-02 | 2015-03-25 | 福建工程学院 | 一种报表***自定义函数的实现方法 |
CN105069134A (zh) * | 2015-08-18 | 2015-11-18 | 上海新炬网络信息技术有限公司 | 一种Oracle统计信息自动收集方法 |
CN106951483A (zh) * | 2017-03-10 | 2017-07-14 | 国网江苏省电力公司电力科学研究院 | 基于存储过程实现跨逻辑强隔离及安全审计的通信方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1588369A (zh) * | 2004-09-06 | 2005-03-02 | 杭州恒生电子股份有限公司 | 一种关系型数据库***及其查询和报表方法 |
CN100580662C (zh) * | 2007-12-29 | 2010-01-13 | 中国建设银行股份有限公司 | 一种异构报表整合及集中管理的装置和*** |
CN105636071A (zh) * | 2014-11-04 | 2016-06-01 | 中兴通讯股份有限公司 | ***容量的预测方法及装置 |
-
2017
- 2017-12-26 CN CN201711431187.0A patent/CN108255967B/zh active Active
-
2018
- 2018-03-29 WO PCT/CN2018/081037 patent/WO2019127956A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8516062B2 (en) * | 2010-10-01 | 2013-08-20 | @Pay Ip Holdings Llc | Storage, communication, and display of task-related data |
CN104461531A (zh) * | 2014-12-02 | 2015-03-25 | 福建工程学院 | 一种报表***自定义函数的实现方法 |
CN105069134A (zh) * | 2015-08-18 | 2015-11-18 | 上海新炬网络信息技术有限公司 | 一种Oracle统计信息自动收集方法 |
CN106951483A (zh) * | 2017-03-10 | 2017-07-14 | 国网江苏省电力公司电力科学研究院 | 基于存储过程实现跨逻辑强隔离及安全审计的通信方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2019127956A1 (zh) | 2019-07-04 |
CN108255967A (zh) | 2018-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109344642B (zh) | 接口规则校验方法、装置、计算机设备及存储介质 | |
CN108255967B (zh) | 存储过程的调用方法、装置、存储介质及终端 | |
WO2018201895A1 (zh) | 接口代码生成方法、装置、终端设备及介质 | |
CN107798038B (zh) | 数据响应方法及数据响应设备 | |
US11210426B2 (en) | Tracing objects across different parties | |
CN111767095A (zh) | 微服务生成方法、装置、终端设备及存储介质 | |
WO2019174124A1 (en) | File sharing method based on two-dimensional code, server and terminal device | |
CN110941630A (zh) | 一种数据库运维方法、装置及*** | |
CN108460068B (zh) | 报表导入导出的方法、装置、存储介质及终端 | |
CN111818175B (zh) | 企业服务总线配置文件生成方法、装置、设备和存储介质 | |
US20190369986A1 (en) | Modeling lifetime of hybrid software application using application manifest | |
CN111784318A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN116541372A (zh) | 一种数据资产治理方法及*** | |
CN115758459A (zh) | 数据权限管理方法及装置 | |
CN113722114A (zh) | 一种数据服务的处理方法、装置、计算设备及存储介质 | |
CN110874216B (zh) | 一种完备代码生成方法、装置、设备和存储介质 | |
CN112631879A (zh) | 数据采集方法、装置、计算机可读介质及电子设备 | |
CN112434062A (zh) | 准实时数据处理方法、装置、服务器及存储介质 | |
CN111046393A (zh) | 漏洞信息上传方法、装置、终端设备及存储介质 | |
CN115658794A (zh) | 数据查询方法、装置、计算机设备和存储介质 | |
CN114237798A (zh) | 数据处理方法、装置、服务器及存储介质 | |
CN110309062B (zh) | 用例生成方法、装置、电子设备及存储介质 | |
CN113641628A (zh) | 数据质量检测方法、装置、设备及存储介质 | |
CN115827589A (zh) | 一种权限验证方法、装置、电子设备及存储介质 | |
CN113254399A (zh) | 日志查询方法、装置、电子设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |