[发明专利]数据查询方法和装置有效

专利信息
申请号: 201410466552.1 申请日: 2014-09-12
公开(公告)号: CN104239508B 公开(公告)日: 2017-05-10
发明(设计)人: 黄坚;戴明海 申请(专利权)人: 中国工商银行股份有限公司
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 北京三友知识产权代理有限公司11127 代理人: 王天尧
地址: 100140 北*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 数据 查询 方法 装置
【说明书】:

技术领域

发明涉及数据处理技术领域,特别涉及一种数据查询方法和装置。

背景技术

Oracle数据库是当前主流的数据库之一,目前,许多企业采用Oracle数据库进行企业数据的存储。在使用应用软件的过程中,经常需要进行灵活条件的查询,例如:一个查询可能存在多项查询条件,但并非所有的查询条件都是必要的,用户在使用的时候往往仅需要其中部分的查询条件就可以满足查询要求。因此,需要灵活的查询,以允许用户灵活把握查询的维度和粒度,从而更为方便快速地查询到用户所需的结果。

对于上述的灵活查询,通常在JAVA中可以直接实现,然而出于对系统分层设计的考虑,浏览器/服务器模式(Browser/Server,BS)系统中通常将对数据库的访问采用存储过程的方式实现,即,所有的数据库逻辑都在存储过程中实现,JAVA程序在整个过程中只调用存储过程、传递输入参数、获取结果。

然而,在实际使用的过程中,Oracle数据库的存储过程使用的过程化SQL(Procedural Language/SQL,PL/SQL)语言中的本地动态结构化查询语言(Structured Query Language,SQL)在查询条件使用绑定变量时,只能支持固定的查询条件。如果查询条件不固定,但需要使用SQL,那么就需要使用非绑定变量的方式进行查询,然而,非绑定变量的SQL查询方式存在如下两个问题:1)会因为无法共享SQL而造成大量的硬解析,导致系统开销增大,处理效率下降;2)由于非绑定变量方式中直接将变量值写入SQL语句文本中,存在SQL引入问题,容易出现安全风险。

因此,在查询条件不固定的情况下,如何使用绑定变量的方式进行SQL数据查询显得尤为重要。

发明内容

本发明实施例提供了一种数据查询方法,以达到在查询条件不固定的情况下采用绑定变量的SQL方式进行数据查询的目的,其中,该方法包括:

在接收的结构化查询语言SQL语句中携带变量名称时,获取用户根据所述变量名称输入的查询条件值;

将所述变量名称与所述查询条件值进行绑定;

预判所述SQL语句执行输出的查询结果的数据类型;

根据预判的数据类型为所述SQL语句执行输出的查询结果分配数据存储变量数组;

执行所述SQL语句,将所述SQL语句执行输出的查询结果存储在分配的数据存储变量数组中;

将所述数据存储变量数组中存储的查询结果提供给应用程序。

在一个实施例中,根据预判的数据类型为所述SQL语句执行输出的查询结果分配数据存储变量数组,包括:

在所述SQL语句执行输出的查询结果中包括多个输出字段时,确定所述多个输出字段中各个输出字段的数据类型,根据确定的数据类型为每个字段分别分配对应的数据存储变量数组中的元素。

调用预定的绑定函数,将输出字段与数据存储变量数组中的元素进行一对一的绑定。

在一个实施例中,执行所述SQL语句,将所述SQL语句执行输出的查询结果存储在分配的数据存储变量数组中,包括:

为所述SQL语句分配游标;

根据分配的游标,将所述SQL语句执行输出的查询结果逐一存储在分配的数据存储变量数组对应的元素中。

在一个实施例中,在将所述数据存储变量数组中存储的查询结果提供给应用程序之后,所述方法还包括:

释放为所述SQL语句分配的游标,和所述数据存储变量数组所占用的资源。

在一个实施例中,将所述SQL语句执行输出的查询结果存储在分配的数据存储变量数组中,包括:

设定游标在所述查询结果的第一条记录上,将所述第一条记录存储至所述数据存储变量数组中;

移动游标至下一条记录上,确定是否存在记录;

如果存在记录,则将当前的记录存储至所述数据存储变量数组对应的元素中,直至游标移动至最后一条记录。

在一个实施例中,所述SQL语句中携带的变量名称,和用户输入的查询条件值是可变的。

本发明实施例还提供了一种数据查询装置,以达到在查询条件不固定的情况下采用绑定变量的SQL方式进行数据查询的目的,其中,该装置包括:

获取模块,用于在接收的结构化查询语言SQL语句中携带变量名称时,获取用户根据所述变量名称输入的查询条件值;

绑定模块,用于将所述变量名称与所述查询条件值进行绑定;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国工商银行股份有限公司,未经中国工商银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201410466552.1/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top