[发明专利]SQL函数转换装置和SQL函数转换方法无效

专利信息
申请号: 201110295584.6 申请日: 2011-09-29
公开(公告)号: CN102436474A 公开(公告)日: 2012-05-02
发明(设计)人: 娄东生;刘新峰;孙东旺 申请(专利权)人: 畅捷通信息技术股份有限公司
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 北京友联知识产权代理事务所(普通合伙) 11343 代理人: 尚志峰;汪海屏
地址: 100094 北京*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: sql 函数 转换 装置 方法
【说明书】:

技术领域

发明涉及数据库技术领域,具体而言,涉及SQL函数转换装置和方法。

背景技术

随着数据库产品的不断增多,除流行的ORACLE、Sql Server、DB2外,目前国内又涌现出了诸如:KingbaseES、GBASE、OSCAR等比较成熟的数据库产品,用户基与各种需求对数据库的选择也在增加。作为一款产品化的软件让其支持多种数据库技术是很有必要的。如何让软件产品能与不同的数据库产品交互,面对数十万行的产品代码,不可能针对每种数据库对上层代码进行修改,目前比较流行的做法是:尽量使用与数据库无关的通用SQL语句和数据类型;重写与开发工具相关的DataBase对象;在DataBase对象的底层截取SQL串进行与目标数据库相关的替换。其中最重要的工作之一就是对SQL串的替换,SQL串的替换一般有以下几种形式:

1、直接在上层使用处更改SQL语句,目的是让SQL语句变成通用写法以减少Database对象的底层替换操作。

2、在Database对象的底层,对于替换条件满足唯一正侧表达式的串使用正侧表达式进行替换。

3、对于满足有限替换条件,且条件之间不会产生互拆的串使用正侧表达式方式进行顺序替换。

不同数据库产品之间的主要差异之一就是数据库的系统函数差异,如以下列举的一些类型的差异:

1、功能相同但名称不同,如Sql Server中的Len(string_expression)函数与KingbaseES中的Length(string_expression)函数。

2、名称相同但功能不同,如Sql Server中的CONVERT函数与KingbaseES中的CONVERT函数是两个完全无法联系在一起的函数,前者是用作数据类型的转换,后者是用作字符串编码的转换。

3、入口参数有差异,如Sql Server中的SPACE(integer_expression)与KingbaseES中的RPAD(char_expression,integer_expression)。

4、某一数据库中独有的函数,如Sql Server中的IIf(《Logical Expression》,《Numeric  Expressionl》,《Numeric  Expression2》),在KingbaseES中不存在。

对于支持多数据库的软件产品,这些差异处理不好会造成错误,如直接报错、由于引用处使用了容错而使代码往错误的逻辑方向运行、返回不是需要的结果等,对开发和测试带来很大的额外工作量。

而对SQL串的替换操作不能简单用正侧表达式方式替换,主要有以下三方面原因:

1、因为函数的使用往往带有复杂的混合、嵌套使用的问题,因而造成无法用正侧表达式表述,例如Sql server表述:select space(12-len(′2311′))在KingbaseES中的等效转换:select RPAD(′′,12-length(′2311′))。

2、函数入口参数的多样性造成匹配的正侧表达式的多样性。例如Sql server中conver函数至少对应20种以上的转换形式。

3、由于数据库系统间的差异,无直接匹配的功能函数,还需要通过特定算生成相应的替换串,如Sql server表述:select convert(varchar(10),cast(′2011-01-1209:30:01′as datetime),102),在KingbaseES中的等效转转为:select TO_CHAR(cast(′2011-01-1209:30:01′as TIMESTAMP),′YYYY.MM.DD′)。

因此,需要一种比较全面且安全可靠的函数替换技术,可以考虑到不同数据库产品之间的差异,满足多种数据库的要求。

发明内容

本发明所要解决的技术问题在于,提供一种SQL函数转换技术,可以进行全面且安全可靠的函数替换。

根据本发明的一个方面,提供了一种SQL函数转换装置,包括:第一替换单元,用标识符替换来自调用者的SQL函数中的参数,得到迭代后的SQL函数;数据库单元,将所述标识符与所述参数对应保存为参数对照表;处理单元,根据所述迭代后的SQL函数中的标识符,从所述参数对照表提取出所述参数,对所述参数进行转换处理;第二替换单元,将处理后的所述参数替换所述迭代后的SQL函数中对应的标识符,以得到目标数据库执行的SQL函数。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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