[发明专利]一种SQL语句的自动翻译方法及装置有效
申请号: | 202010010999.3 | 申请日: | 2020-01-06 |
公开(公告)号: | CN111221846B | 公开(公告)日: | 2023-09-29 |
发明(设计)人: | 请求不公布姓名 | 申请(专利权)人: | 广州拉卡拉信息技术有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242 |
代理公司: | 北京墨丘知识产权代理事务所(普通合伙) 11878 | 代理人: | 魏梳芳 |
地址: | 510555 广东省广州市黄*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sql 语句 自动 翻译 方法 装置 | ||
本公开实施例公开了一种SQL语句的自动翻译方法及装置,涉及数据库领域。其中,该方法包括:从接收到的输入信息中识别提取出SQL语句;对输出的SQL语句进行语句分析,生成SQL语句的语法分析树;根据语法分析树对SQL语句进行自动翻译,生成翻译后的SQL语句;执行翻译后的SQL语句,返回执行状态。
技术领域
本公开涉及数据库领域,具体涉及一种SQL语句的自动翻译方法及装置。
背景技术
现代网络技术的迅速发展,早已进入了云计算的时代,越来越多的软件供应商把自己的工作流从本地设备转移到了云端平台。SaaS(Software as a Service,软件即服务)是云计算的服务模型之一,其主要特点是通过网络提供软件服务,从而为使用软件应用的客户们提供了一种按需订阅的能力。用户可通过远程网络使用软件供应商提供的服务,且为不同类型的用户提供的服务可以自由配置,从用户角度看来看起来他们完全拥有这个应用。通过这种方法可以利用资源共享方式来减少软件应用整体的拥有成本,因此,SaaS使得那些中小型企业可以负担得起以往费用高昂的专业软件服务,从而有机会获得长尾效应以进一步开发相关市场。
在传统软件应用到SaaS服务模型的转移中,由于SaaS应用独特的数据设计方法,传统数据库的SQL(Structured Query Language,结构化查询语言)语句不能在SaaS应用中直接使用,需要根据SaaS应用的数据库设计重新改写SQL语句。但当前这种改写工作主要依赖人工完成,不但容易出错,还会耗费大量的人力物力;而且对于常见的DDL(DataDefinition Language,数据库模式定义语言)语句和DML(Data Manipulation Language,数据操纵语言)语句中insert,update,delete等语句都没有办法直接进行翻译改写,无法做到从传统应用到SaaS应用SQL语句翻译的自动化。因此,亟需一种SQL语句的自动翻译方案来解决此问题。
发明内容
针对现有技术中的上述技术问题,本公开实施例提出了一种SQL语句的自动翻译方法及装置,以解决现有技术中翻译SQL语句容易出错,耗费大量人力物力的问题,同时还解决了对常见的DDL语句和DML语句没有办法进行翻译的问题。
本公开实施例的第一方面提供了一种SQL语句的自动翻译方法,包括:
接收输入并输出SQL语句;
对输出的SQL语句进行语句分析,生成所述SQL语句的语法分析树;
根据所述语法分析树对所述SQL语句进行自动翻译,生成翻译后的SQL语句;
执行所述翻译后的SQL语句,返回执行状态。
在一些实施例中,所述接收并输出SQL语句,具体包括:接收输入,并对所述输入进行预处理,输出经预处理后的SQL语句。
在一些实施例中,所述预处理,具体包括:
判断所述输入中的SQL语句是否符合预定义的语法规则;
若符合所述语法规则,判断所述输入中的SQL语句所属类型,并调用相应的翻译类型。
在一些实施例中,对所述SQL语句进行语句分析,具体包括:对所述SQL语句进行词法分析和语法分析。
在一些实施例中,对所述SQL语句进行词法分析和语法分析,具体包括:根据所述SQL语句,使用分析工具自定义词法,进行词法分析,获得多个词法单元;根据预定义的语法规则对所述SQL语句进行语法分析;
所述生成所述SQL语句的语法分析树,具体包括:根据所述词法单元和所述预定义的语法生成所述SQL语句的语法分析树。
在一些实施例中,所述SQL语句包括DDL语句和DML语句;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州拉卡拉信息技术有限公司,未经广州拉卡拉信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010010999.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:终端的定位修正方法、装置
- 下一篇:适用于设备侧的虚拟化系统