CN110175031A - Sql语言转成dsl语言的方法、装置、计算机设备和存储介质 - Google Patents

Sql语言转成dsl语言的方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN110175031A
CN110175031A CN201910341161.XA CN201910341161A CN110175031A CN 110175031 A CN110175031 A CN 110175031A CN 201910341161 A CN201910341161 A CN 201910341161A CN 110175031 A CN110175031 A CN 110175031A
Authority
CN
China
Prior art keywords
sql statement
symbol
sentence
dsl
sql
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.)
Granted
Application number
CN201910341161.XA
Other languages
English (en)
Other versions
CN110175031B (zh
Inventor
李桃
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201910341161.XA priority Critical patent/CN110175031B/zh
Publication of CN110175031A publication Critical patent/CN110175031A/zh
Priority to PCT/CN2019/103545 priority patent/WO2020215576A1/zh
Application granted granted Critical
Publication of CN110175031B publication Critical patent/CN110175031B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提出的SQL语言转成DSL语言的方法、装置、计算机设备和存储介质,其中方法包括:获取待转换的SQL语句;将SQL语句中的SQL逻辑操作符替换成与SQL逻辑操作符含义相同的DSL语言的DSL逻辑操作符,得到换符SQL语句;判断换符SQL语句是否为case句型的语句;若是,则获取换符SQL语句中非case句型固定字符的参数,并将参数映射到DSL语言的switch句型中对应的位置,以得到DSL语句;若否,则将换符SQL语句分割成多个单字符,并将单字符中的变量以及函数分别替换成预设的变量表达式以及函数表达式,将变量表达式以及函数表达式与剩下的字符合并得到DSL语句,本发明节省用户使用IoT平台的时间,无需学习DSL语言,直接通过SQL语言转换成DSL即可实现编辑Drools规则。

Description

SQL语言转成DSL语言的方法、装置、计算机设备和存储介质
技术领域
本发明涉及到数据处理的技术领域,特别是涉及到一种SQL语言转成DSL语言的方法、装置、计算机设备和存储介质。
背景技术
物联网(Internet of Things,缩写IoT)是互联网、传统电信网等信息承载体,是让所有能行使独立功能的普通物体实现互联互通的网络,通常采用Drools规则引擎来实现IoT的内部规则。
目前,DSL(Domain Specified Language)为Drools规则引擎编辑规则的专用语言,但使用IoT平台的用户大部分是非平台开发者,很多用户并不具备使用DSL的能力,一般而言用户较为熟练SQL语言(Structured Query Language),但是Drools并不支持类似SQL的函数功能,导致两者不能通用,耗费用户学习DSL语言的成本。
发明内容
本发明的主要目的为提供一种SQL语言转成DSL语言的方法、装置、计算机设备和存储介质,旨在解决由于现有SQL语言与Drools规则引擎不通用的技术问题。
基于上述发明目的,本发明提出一种SQL语言转成DSL语言的方法,包括:
获取待转换的SQL语句;
将所述SQL语句中的SQL逻辑操作符替换成与所述SQL逻辑操作符含义相同的DSL语言的DSL逻辑操作符,得到换符SQL语句;
判断所述换符SQL语句是否为case句型的语句;
若是,则获取所述换符SQL语句中非case句型固定字符的参数,并将所述参数映射到DSL语言的switch句型中对应的位置,以得到所述DSL语句;
若否,则将所述换符SQL语句分割成多个单字符,并将所述单字符中的变量以及函数分别替换成预设的变量表达式以及函数表达式,将所述变量表达式以及所述函数表达式,与所述单字符中除却变量以及函数外剩下的字符合并,得到DSL语句。
进一步地,所述判断所述换符SQL语句是否为case句型的语句的步骤,包括:
在所述换符SQL语句中查找case单词;
若在所述换符SQL语句中查找到所述case单词,则判定所述换符SQL语句为case句型的语句;
若在所述换符SQL语句中查找不到所述case单词,则判定所述换符SQL语句不是case句型的语句。
进一步地,所述判断所述换符SQL语句是否为case句型的语句的步骤,包括:
将所述换符SQL语句分割成操作部分以及条件部分,所述操作部分为所述SQL语句中代表运行操作的部分,所述条件部分为所述SQL语句中代表判断条件的部分;
判定所述操作部分中是否包含case单词;
若是,则判定所述换符SQL语句是case句型的语句,否则,则判定所述换符SQL语句不是case句型的语句。
进一步地,所述将所述换符SQL语句分割成操作部分以及条件部分的步骤,包括:
从所述换符SQL语句中查找select单词以及where单词;
以所述where单词的起始字符为分割点将所述换符SQL语句分成所述操作部分以及所述条件部分,所述操作部分为从所述select单词的起始字符到where单词的起始字符之间的内容,所述条件部分为所述where单词起始字符到所述SQL语句结束字符之间的内容。
进一步地,所述将所述换符SQL语句分割成多个单字符,并将所述单字符中的变量以及函数分别替换成预设的变量表达式以及函数表达式,将所述变量表达式以及所述函数表达式,与所述单字符中除却变量以及函数外剩下的字符合并,得到DSL语句的步骤,包括:
将所述换符SQL语句分割成第一操作部分以及第一条件部分;
分别对所述第一操作部分以及所述第一条件部分进行字符分割,得到包含分别多个单字符的第一操作部分以及第一条件部分;
将所述第一包含分别多个单字符的操作部分以及第一条件部分中的变量以及函数分别替换成所述变量表达式以及所述函数表达式,以得到第二操作部分以及第二条件部分;
将所述第二操作部分以及所述第二条件部分按所述DSL语言的格式进行合并,得到所述DSL语句。
进一步地,所述将包含分别多个单字符的第一操作部分以及第一条件部分中的变量以及函数分别替换成所述变量表达式以及所述函数表达式,以得到第二操作部分以及第二条件部分的步骤,包括:
将所述第一操作部分以及所述第一条件部分中的字符遍历,逐个判断是否为所述DSL逻辑操作符;
当判定所述字符不为所述DSL逻辑操作符时,识别所述字符的种类,所述字符的种类包括常量、所述变量以及所述函数,并依据所述字符的种类将所述字符替换成对应的表达式,直至将所述第一操作部分以及第一条件部分中的所有变量以及函数均替换成对应的表达式,以得到对应的所述第二操作部分以及第二条件部分。
本发明还提供一种SQL语言转成DSL语言的装置,包括:
获取语句单元,用于获取待转换的SQL语句;
替换符号单元,用于将所述SQL语句中的SQL逻辑操作符替换成与所述SQL逻辑操作符含义相同的DSL语言的DSL逻辑操作符,得到换符SQL语句;
判断句型单元,用于判断所述换符SQL语句是否为case句型的语句;
第一转换单元,用于判定所述换符SQL语句为case句型的语句时,获取所述换符SQL语句中非case句型固定字符的参数,并将所述参数映射到DSL语言的switch句型中对应的位置,以得到所述DSL语句;
第二转换单元,用于判断所述换符SQL语句不为case句型的语句时,将所述换符SQL语句分割成多个单字符,并将所述单字符中的变量以及函数分别替换成预设的变量表达式以及函数表达式,将所述变量表达式以及所述函数表达式与所述单字符中除却变量以及函数剩下的字符合并得到DSL语句
进一步地,所述判断句型单元包括:
查找单词子单元,用于在所述换符SQL语句中查找case单词;
第一判定子单元,用于在所述换符SQL语句中查找到所述case单词时,则判定所述换符SQL语句为case句型的语句;
第二判定子单元,用于在所述换符SQL语句中查找不到所述case单词时,则判定所述换符SQL语句不是case句型的语句。
本发明还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本发明的有益效果为:通过本发明将SQL语言转成DSL语言,节省用户使用IoT平台的时间,无需学习DSL语言,直接通过SQL语言转换成DSL即可实现编辑Drools规则。
附图说明
图1为本发明一实施例中SQL语言转成DSL语言的方法的步骤示意图;
图2为本发明一实施例中SQL语言转成DSL语言的装置的结构示意框图;
图3为本发明一实施例的计算机设备的结构示意框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,本实施例中的SQL语言转成DSL语言的方法,包括:
步骤S1:获取待转换的SQL语句;
步骤S2:将所述SQL语句中的SQL逻辑操作符替换成与所述SQL逻辑操作符含义相同的DSL语言的DSL逻辑操作符,得到换符SQL语句;
步骤S3:判断所述换符SQL语句是否为case句型的语句;
步骤S4:若是,则获取所述换符SQL语句中非case句型固定字符的参数,并将所述参数映射到DSL语言的switch句型中对应的位置,以得到DSL语句;
步骤S5:若否,则将所述换符SQL语句分割成多个单字符,并将所述单字符中的变量以及函数分别替换成预设的变量表达式以及函数表达式,将所述变量表达式以及所述函数表达式,与所述单字符中除却变量以及函数外剩下的字符合并,得到DSL语句。
如上述步骤S1所述,上述SQL语句为采用SQL语言(Structured Query Language,一种数据库查询和程序设计的编程语言)编写的语句,该SQL语句可由开发人员预设或用户输入在系统,用于转换成DSL语句,当需要将上述SQL语句使用在DSL语言的场景时,直接从系统中获取上述SQL语句,然后按下述步骤将其转换成对应的DSL语句。
如上述步骤S2所述,已知的是,每种语言都有其对应的逻辑操作符,用于按照其定义的逻辑进行操作,如SQL中的“=”、“and”、“or”等符号,且本实施例中,上述SQL语言与DSL语言的逻辑操作符部分不同,为了便于描述,SQL语言的逻辑操作符记为SQL逻辑操作符,DSL语言的逻辑操作符记为DSL逻辑操作符,在获取到上述SQL语句之后,首先将SQL语句中的SQL逻辑操作符替换成与SQL逻辑操作符表达意思相同,即含义相同的DSL逻辑操作符,如将SQL逻辑操作符“=”、“and”、“or”、“in”、“like”分别替换为DSL逻辑操作符“==”、“&&”、“||”、“memberOf”、“matches”;具体而言,每个字符都有预设的固定下标,通过查找对应的下标,从上述SQL语句中找到对应的SQL逻辑操作符,然后在关系表中找到对应的DSL逻辑操作符,并将上述SQL逻辑操作符替换成该DSL逻辑操作符,上述关系表为SQL逻辑操作符与DSL逻辑操作符一一对应的列表,当两者对应时,其含义相同。为了便于区别,将上述被替换了逻辑操作符之后的SQL语句记作换符SQL语句。
如上述步骤S3所述,SQL语句包括有两种类型,一种是case句型的语句,例如描述当b等于1时程序开始:“case b when 1then‘on’”。另一种则不是case句型的语句,例如描述当a大于1且b小于1时,运算结果为a加b再加1:“select a+b+1where a>1and b<1”。由于针对这两种句型,转换的规则不一样,故而需要先判断上述获取的到SQL语句是哪一种句型。在一个实施例中,判断方法如下,上述步骤S3,包括:
步骤S31:在所述换符SQL语句中查找case单词;
步骤S32:若在所述换符SQL语句中查找到所述case单词,则判定所述换符SQL语句为case句型的语句;
步骤S33:若在所述换符SQL语句中查找不到所述case单词,则判定所述换符SQL语句不是case句型的语句。
如步骤S31-S33所述,由于在SQL语句中,若该SQL语句为case句型的语句,则相应的,该SQL语句中包含有“case”这个单词,故而判断上述换符SQL语句是不是case句型的语句时,先在该换符SQL语句中查找“case”单词,若查找到,则说明该换符SQL语句是case句型的语句,需按上述步骤S4转换语言;若找不到,则说明该换符SQL语句不是case句型的语句,可按上述步骤S5执行转换语言。
在另一个实施例中,上述步骤S3,包括:
步骤S34:将所述换符SQL语句分割成操作部分以及条件部分,所述操作部分为所述SQL语句中代表运行操作的部分,所述条件部分为所述SQL语句中代表判断条件的部分;
步骤S35:判断所述操作部分中是否包含case单词;
步骤S36:若是,则判定所述换符SQL语句是case句型的语句,否则,则判定所述换符SQL语句不是case句型的语句。
本实施例中,为了方便合并后续处理,可先将上述换符SQL语句分割成代表运行操作的action部分以及代表判断条件的condition部分,这两部分分别记为操作部分以及条件部分,这样分割之后,后续转换字符再合并时按模块合并即可,更加方便。其中,上述case单词位于action部分,即位于操作部分,故而将换符SQL语句分割之后,判断操作部分是否包含有上述case单词,若有,则说明该换符SQL语句为case句型的语句,若没有,则说明换符SQL语句不是case句型的语句。
在一个实施例中,上述步骤S34,包括:
步骤S341:从所述换符SQL语句中查找select单词以及where单词;
步骤S342:以所述where单词的起始字符为分割点将所述换符SQL语句分成所述操作部分以及所述条件部分,所述操作部分为从所述select单词的起始字符到where单词的起始字符之间的内容,所述条件部分为所述where单词起始字符到所述SQL语句结束字符之间的内容。
本实施例中,将上述换符SQL语句分割时,找到分界点再进行分,具体可通过split分割命令来进行分割,通常SQL语句中操作部分以及条件部分具有对应的开始单词,例如“select a+b+1where a>1and b<1”,其中select以及where两个单词即为对应操作部分以及条件部分的开端,故而先在换符SQL语句中查找select单词以及where单词,然后以where单词的起始字符为分割点将换符SQL语句分割,得到以select单词的起始字符开始,where单词的起始字符结束的操作部分,以及得到以where单词起始字符开始,SQL语句结束字符结束的条件部分。
如上述步骤S4所述,当判断上述换符SQL语句为case句型的语句时,则可以通过将该case句型的语句转换成switch句型的DSL语句。具体而言,根据DSL语言的结构,将SQL语言中非case句型固定字符的参数对应地映射到DSL结构相应的位置,即按映射关系将上述参数放到DSL结构相应的位置,由于SQL语言的case句型具有固定的字符以及非固定字符,SQL语言含义的不同通过上述非固定字符反映,如“select case b when 1then‘on’else‘off’end”,其中select、case、when、then、end等为case句型固定的字符,而1、‘on’、‘off’为非固定字符。DSL结构中的switch句型同样具有对应的固定字符以及非固定字符,将上述case句型非固定字符映射到switch句型对应的非固定字符位置,得到上述DSL语句。举例地,上述换符SQL语句为“select case b when 1then‘on’else‘off’end”,将对应的参数(如b、1、‘on’、‘off’)映射到DSL结构为“switch(b){case b=1=‘on’;default b=‘off’}”。
如上述步骤S5所述,当判断上述换符SQL语句不为case句型的语句时,将该换符SQL语句分割成多个单字符,同样可采用split分割命令来进行分割,由于在字符合并时为一个个字符串,难以判断以及替换,故而此处进行字符分割。然后依次将其中的常量、变量以及函数找出,并将变量替换成对应的变量表达式,将函数替换成函数表达式,这些变量表达式以及函数表达式为预设的,可由开发人员自定义设置这些表达式模式,可以为字符串,其中变量表达式即为该变量对应的值,函数表达式即为对应该函数的计算结果,替换之后,将所有分割的字符合并得到DSL语句。
在一个实施例中,上述步骤S5,包括:
步骤S51:将所述换符SQL语句分割成第一操作部分以及第一条件部分;
步骤S52:分别对所述第一操作部分以及所述第一条件部分进行字符分割,得到包含分别多个单字符的第一操作部分以及第一条件部分;
步骤S53:将所述包含分别多个单字符的第一操作部分以及第一条件部分中的变量以及函数分别替换成所述变量表达式以及所述函数表达式,以得到第二操作部分以及第二条件部分;
步骤S54:将所述第二操作部分以及所述第二条件部分按所述DSL语言的格式进行合并,得到所述DSL语句。
本实施例中,当上述换符SQL语句在步骤S3时没有分割成action以及condition两部分时,这时可在步骤S5将该语句先分割成这两部分,再将这两部分合并。首先将换符SQL分割成第一操作部分以及第一条件部分,分割过程参照上述步骤S3,分割成两部分之后,分别对第一操作部分以及第一条件部分进行字符分割,即将该两部分均分割成多个单字符;再将字符中的变量以及函数分别替换成上述变量表达式以函数表达式,在一个实施例中,上述步骤S53,包括:
步骤S531:将所述第一操作部分以及所述第一条件部分中的字符遍历,逐个判断是否为所述DSL逻辑操作符;
步骤S532:当判定所述字符不为所述DSL逻辑操作符时,识别所述字符的种类,所述字符的种类包括常量、所述变量以及所述函数,并依据所述字符的种类将所述字符替换成对应的表达式,直至将所述第一操作部分以及第一条件部分中的所有变量以及函数均替换成对应的表达式,以得到对应的所述第二操作部分以及第二条件部分。
本实施例中,首先逐个判断第一操作部分中以及第一条件部分中的字符是否为上述DSL逻辑操作符,如果是,则继续判断下一个字符,如果不是,则识别该字符的种类,字符的种类包括常量、变量以及函数,即识别该字符是常量、变量以及函数中的哪个,识别之后将其替换成对应的表达式,再判断下一个字符。举例地,当判断该字符为常量,例如“1”、“2”、“23”等,将无需替换任何表达式,直接判断下一个字符;当判断该字符为变量,例如“a”、“b”等,此时可替换成对应的变量的表达式“$get.(“a”)”、“$get.(“b”)”,然后再判断下一个字符;当判断该字符为函数时,例如sin(x),替换成对应的函数表达式为“Function.sin(x)”,然后再判断下一个字符,以此类推,逐个判断第一条件部分以及第一操作部分中的字符,直至将该两个模块中的所有字符都遍历,得到上述第二操作部分以及第二条件部分。
如上述步骤S54所述,当得到第二操作部分以及第二条件部分时,将这两个模块中的字符按顺序分别合并,得到合并字符之后的第二操作部分以及合并字符之后的第二条件部分,然后按照DSL语言的格式将这两部分进行合并得到上述DSL语句。
举例地,SQL语句为“select a+b+1where a>1and b<1”,替换逻辑操作符之后的换符SQL语句为“select a+b+1where a>1&&b<1”先将其分割成两个模块,第一操作部分“a+b+1”,以及第一条件部分“a>1&&b<1”,再将两个模块分别分割得到分割后的第一操作部分“a”、“+”、“b”、“+”、“1”,以及分割后的第一条件部分“a”、“>”、“1”、“&&”、“b”、“<”、“1”。逐一对这两个模块的字符进行判断是否逻辑操作符,然后替换变量以及函数,按顺序将所有字符合并得到第二操作部分“$get.(“a”)+“$get.(“b”)+1”,以及第二条件部分“$get.(“a”)>1&&$get(“b”)<1”,最后将这两个模块按DSL语言的格式合并得到DSL语句“rule xxx when$get.(“a”)>1&&$get(“b”)<1then$get.(“a”)+“$get.(“b”)+1”。
参照图2,本实施例中SQL语言转成DSL语言的装置,包括:
获取语句单元100,用于获取待转换的SQL语句;
替换符号单元200,用于将所述SQL语句中的SQL逻辑操作符替换成与所述SQL逻辑操作符含义相同的DSL语言的DSL逻辑操作符,得到换符SQL语句;
判断句型单元300,用于判断所述换符SQL语句是否为case句型的语句;
第一转换单元400,用于判定所述换符SQL语句为case句型的语句时,获取所述换符SQL语句中非case句型固定字符的参数,并将所述参数映射到DSL语言的switch句型中对应的位置,以得到所述DSL语句;
第二转换单元500,用于判断所述换符SQL语句不为case句型的语句时,将所述换符SQL语句分割成多个单字符,并将所述单字符中的变量以及函数分别替换成预设的变量表达式以及函数表达式,将所述变量表达式以及所述函数表达式,与所述单字符中除却变量以及函数外剩下的字符合并,得到DSL语句。
如上述获取语句单元100所述,上述SQL语句为采用SQL语言(Structured QueryLanguage,一种数据库查询和程序设计的编程语言)编写的语句,该SQL语句可由开发人员预设或用户输入在系统,用于转换成DSL语句,当需要将上述SQL语句使用在DSL语言的场景时,直接从系统中获取上述SQL语句,再将其转换成对应的DSL语句。
如上述替换符号单元200所述,已知的是,每种语言都有其对应的逻辑操作符,用于按照其定义的逻辑进行操作,如SQL中的“=”、“and”、“or”等符号,且本实施例中,上述SQL语言与DSL语言的逻辑操作符部分不同,为了便于描述,SQL语言的逻辑操作符记为SQL逻辑操作符,DSL语言的逻辑操作符记为DSL逻辑操作符,在获取到上述SQL语句之后,首先将SQL语句中的SQL逻辑操作符替换成与SQL逻辑操作符含义相同的DSL逻辑操作符,如将SQL逻辑操作符“=”、“and”、“or”、“in”、“like”分别替换为DSL逻辑操作符“==”、“&&”、“||”、“memberOf”、“matches”;具体而言,每个字符都有预设的固定下标,通过查找对应的下标,从上述SQL语句中找到对应的SQL逻辑操作符,然后在关系表中找到对应的DSL逻辑操作符,并将上述SQL逻辑操作符替换成该DSL逻辑操作符,上述关系表为SQL逻辑操作符与DSL逻辑操作符一一对应的列表,当两者对应时,其含义相同。为了便于区别,将上述被替换了逻辑操作符之后的SQL语句记作换符SQL语句。
如上述判断句型单元300所述,SQL语句包括有两种类型,一种是case句型的语句,例如描述当b等于1时程序开始:“case b when 1then‘on’”。另一种则不是case句型的语句,例如描述当a大于1且b小于1时,运算结果为a加b再加1:“select a+b+1where a>1andb<1”。由于针对这两种句型,转换的规则不一样,故而需要先判断上述获取的到SQL语句是哪一种句型。在一个实施例中,上述判断句型单元300,包括:
查找单词子单元,用于在所述换符SQL语句中查找case单词;
第一判定子单元,用于在所述换符SQL语句中查找到所述case单词时,则判定所述换符SQL语句为case句型的语句;
第二判定子单元,用于在所述换符SQL语句中查找不到所述case单词时,则判定所述换符SQL语句不是case句型的语句。
本实施例中,由于在SQL语句中,若该SQL语句为case句型的语句,则相应的,该SQL语句中包含有“case”这个单词,故而判断上述换符SQL语句是不是case句型的语句时,先在该换符SQL语句中查找“case”单词,若查找到,则说明该换符SQL语句是case句型的语句,需按上述第一转换单元400转换语言;若找不到,则说明该换符SQL语句不是case句型的语句,可按上述第二转换单元500转换语言。
在另一个实施例中,上述判断句型单元300,还包括:
分割模块子单元,用于将所述换符SQL语句分割成操作部分以及条件部分,所述操作部分为所述SQL语句中代表运行操作的部分,所述条件部分为所述SQL语句中代表判断条件的部分;
判断单词子单元,用于判断所述操作部分中是否包含case单词;
判定单词子单元,用于判定所述操作部分中包含case单词时,则判定所述换符SQL语句是case句型的语句,否则,则判定所述换符SQL语句不是case句型的语句。
本实施例中,为了方便合并后续处理,可先将上述换符SQL语句分割成代表运行操作的action部分以及代表判断条件的condition部分,这两部分分别记为操作部分以及条件部分,这样分割之后,后续转换字符再合并时按模块合并即可,更加方便。其中,上述case单词位于action部分,即位于操作部分,故而将换符SQL语句分割之后,判断操作部分是否包含有上述case单词,若有,则说明该换符SQL语句为case句型的语句,若没有,则说明换符SQL语句不是case句型的语句。
在一个实施例中,上述分割模块子单元,包括:
查找单词模块,用于从所述换符SQL语句中查找select单词以及where单词;
分割语句模块,用于以所述where单词的起始字符为分割点将所述换符SQL语句分成所述操作部分以及所述条件部分,所述操作部分为从所述select单词的起始字符到where单词的起始字符之间的内容,所述条件部分为所述where单词起始字符到所述SQL语句结束字符之间的内容。
本实施例中,将上述换符SQL语句分割时,找到分界点再进行分,具体可通过split分割命令来进行分割,通常SQL语句中操作部分以及条件部分具有对应的开始单词,例如“select a+b+1where a>1and b<1”,其中select以及where两个单词即为对应操作部分以及条件部分的开端,故而先在换符SQL语句中查找select单词以及where单词,然后以where单词的起始字符为分割点将换符SQL语句分割,得到以select单词的起始字符开始,where单词的起始字符结束的操作部分,以及得到以where单词起始字符开始,SQL语句结束字符结束的条件部分。
如上述第一转换单元400所述,当判断上述换符SQL语句为case句型的语句时,则可以通过将该case句型的语句转换成switch句型的DSL语句。具体而言,根据DSL语言的结构,将SQL语言中非case句型固定字符的参数对应地映射到DSL结构相应的位置,由于SQL语言的case句型具有固定的字符以及非固定字符,SQL语言含义的不同通过上述非固定字符反映,如“select case b when 1then‘on’else‘off’end”,其中select、case、when、then、end等为case句型固定的字符,而1、‘on’、‘off’为非固定字符。DSL结构中的switch句型同样具有对应的固定字符以及非固定字符,将上述case句型非固定字符映射到switch句型对应的非固定字符位置即完成上述转化。举例地,上述换符SQL语句为“select case b when1then‘on’else‘off’end”,将对应的参数(如b、1、‘on’、‘off’)映射到DSL结构为“switch(b){case b=1=‘on’;default b=‘off’}”。
如上述第二转换单元500所述,当判断上述换符SQL语句不为case句型的语句时,将该换符SQL语句分割成多个单字符,同样可采用split分割命令来进行分割,由于在字符合并时为一个个字符串,难以判断以及替换,故而此处进行字符分割。然后依次将其中的常量、变量以及函数找出,并将变量替换成对应的变量表达式,将函数替换成函数表达式,这些变量表达式以及函数表达式为预设的,可由开发人员自定义设置这些表达式模式,可以为字符串,其中变量表达式即为该变量对应的值,函数表达式即为对应该函数的计算结果,替换之后,将所有分割的字符合并得到DSL语句。
在一个实施例中,上述第二转换单元500,包括:
第一分割子单元,用于将所述换符SQL语句分割成第一操作部分以及第一条件部分;
第二分割子单元,用于分别对所述第一操作部分以及所述第一条件部分进行字符分割,得到包含分别多个单字符的第一操作部分以及第一条件部分;
替换字符子单元,用于将所述包含分别多个单字符的第一操作部分以及第一条件部分中的变量以及函数分别替换成所述变量表达式以及所述函数表达式,以得到第二操作部分以及第二条件部分;
合并模块子单元,用于将所述第二操作部分以及所述第二条件部分按所述DSL语言的格式进行合并,得到所述DSL语句。
本实施例中,首先将换符SQL分割成第一操作部分以及第一条件部分,分割过程参照上述分割模块子单元,分割成两部分之后,分别对第一操作部分以及第一条件部分进行字符分割,即将该两部分均分割成多个单字符;再将字符中的变量以及函数分别替换成上述变量表达式以函数表达式,在一个实施例中,上述替换字符子单元,包括:
遍历符号模块,用于将所述第一操作部分以及所述第一条件部分中的字符遍历,逐个判断是否为所述DSL逻辑操作符;
替换字符模块,用于当判定所述字符不为所述DSL逻辑操作符时,识别所述字符的种类,所述字符的种类包括常量、所述变量以及所述函数,并依据所述字符的种类将所述字符替换成对应的表达式,直至将所述第一操作部分以及第一条件部分中的所有变量以及函数均替换成对应的表达式,以得到对应的所述第二操作部分以及第二条件部分。
本实施例中,首先逐个判断第一操作部分中以及第一条件部分中的字符是否为上述DSL逻辑操作符,如果是,则继续判断下一个字符,如果不是,则识别该字符的种类,字符的种类包括常量、变量以及函数,即识别该字符是常量、变量以及函数中的哪个,识别之后将其替换成对应的表达式,再判断下一个字符。举例地,当判断该字符为常量,例如“1”、“2”、“23”等,将无需替换任何表达式,直接判断下一个字符;当判断该字符为变量,例如“a”、“b”等,此时可替换成对应的变量的表达式“$get.(“a”)”、“$get.(“b”)”,然后再判断下一个字符;当判断该字符为函数时,例如sin(x),替换成对应的函数表达式为“Function.sin(x)”,然后再判断下一个字符,以此类推,逐个判断第一条件部分以及第一操作部分中的字符,直至将该两个模块中的所有字符都遍历,得到上述第二操作部分以及第二条件部分。
如上述替换字符模块所述,当得到第二操作部分以及第二条件部分时,将这两个模块中的字符按顺序分别合并,得到合并字符之后的第二操作部分以及合并字符之后的第二条件部分,然后按照DSL语言的格式将这两部分进行合并得到上述DSL语句。
举例地,SQL语句为“select a+b+1where a>1and b<1”,替换逻辑操作符之后的换符SQL语句为“select a+b+1where a>1&&b<1”先将其分割成两个模块,第一操作部分“a+b+1”,以及第一条件部分“a>1&&b<1”,再将两个模块分别分割得到分割后的第一操作部分“a”、“+”、“b”、“+”、“1”,以及分割后的第一条件部分“a”、“>”、“1”、“&&”、“b”、“<”、“1”。逐一对这两个模块的字符进行判断是否逻辑操作符,然后替换变量以及函数,按顺序将所有字符合并得到第二操作部分“$get.(“a”)+“$get.(“b”)+1”,以及第二条件部分“$get.(“a”)>1&&$get(“b”)<1”,最后将这两个模块按DSL语言的格式合并得到DSL语句“rule xxx when$get.(“a”)>1&&$get(“b”)<1then$get.(“a”)+“$get.(“b”)+1”。
参照图3,本发明实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储将SQL语言转成DSL语言所需的所有数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种SQL语言转成DSL语言的方法。
上述处理器执行上述SQL语言转成DSL语言的方法的步骤:获取待转换的SQL语句;将所述SQL语句中的SQL逻辑操作符替换成与所述SQL逻辑操作符含义相同的DSL语言的DSL逻辑操作符,得到换符SQL语句;判断所述换符SQL语句是否为case句型的语句;若是,则获取所述换符SQL语句中非case句型固定字符的参数,并将所述参数映射到DSL语言的switch句型中对应的位置,以得到DSL语句;若否,则将所述换符SQL语句分割成多个单字符,并将所述单字符中的变量以及函数分别替换成预设的变量表达式以及函数表达式,将所述变量表达式以及所述函数表达式,与所述单字符中除却变量以及函数外剩下的字符合并,得到DSL语句。
上述计算机设备,上述判断所述换符SQL语句是否为case句型的语句的步骤,包括:在所述换符SQL语句中查找case单词;若在所述换符SQL语句中查找到所述case单词,则判定所述换符SQL语句为case句型的语句;若在所述换符SQL语句中查找不到所述case单词,则判定所述换符SQL语句不是case句型的语句。
在一个实施例中,上述判断所述换符SQL语句是否为case句型的语句的步骤,包括:将所述换符SQL语句分割成操作部分以及条件部分,所述操作部分为所述SQL语句中代表运行操作的部分,所述条件部分为所述SQL语句中代表判断条件的部分;判定所述操作部分中是否包含case单词;若是,则判定所述换符SQL语句是case句型的语句,否则,则判定所述换符SQL语句不是case句型的语句。
在一个实施例中,上述将所述换符SQL语句分割成操作部分以及条件部分的步骤,包括:从所述换符SQL语句中查找select单词以及where单词;以所述where单词的起始字符为分割点将所述换符SQL语句分成所述操作部分以及所述条件部分,所述操作部分为从所述select单词的起始字符到where单词的起始字符之间的内容,所述条件部分为所述where单词起始字符到所述SQL语句结束字符之间的内容。
在一个实施例中,上述将所述换符SQL语句分割成多个单字符,并将所述单字符中的变量以及函数分别替换成预设的变量表达式以及函数表达式,将所述变量表达式以及所述函数表达式,与所述单字符中除却变量以及函数外剩下的字符合并,得到DSL语句的步骤,包括:将所述换符SQL语句分割成第一操作部分以及第一条件部分;分别对所述第一操作部分以及所述第一条件部分进行字符分割,得到包含分别多个单字符的第一操作部分以及第一条件部分;将所述包含分别多个单字符的第一操作部分以及第一条件部分中的变量以及函数分别替换成所述变量表达式以及所述函数表达式,以得到第二操作部分以及第二条件部分;将所述第二操作部分以及所述第二条件部分按所述DSL语言的格式进行合并,得到所述DSL语句。
在一个实施例中,上述将所述包含分别多个单字符的第一操作部分以及第一条件部分中的变量以及函数分别替换成所述变量表达式以及所述函数表达式,以得到第二操作部分以及第二条件部分的步骤,包括:将所述第一操作部分以及所述第一条件部分中的字符遍历,逐个判断是否为所述DSL逻辑操作符;当判定所述字符不为所述DSL逻辑操作符时,识别所述字符的种类,所述字符的种类包括常量、所述变量以及所述函数,并依据所述字符的种类将所述字符替换成对应的表达式,直至将所述第一操作部分以及第一条件部分中的所有变量以及函数均替换成对应的表达式,以得到对应的所述第二操作部分以及第二条件部分。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本发明一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种SQL语言转成DSL语言的方法,具体为:获取待转换的SQL语句;将所述SQL语句中的SQL逻辑操作符替换成与所述SQL逻辑操作符含义相同的DSL语言的DSL逻辑操作符,得到换符SQL语句;判断所述换符SQL语句是否为case句型的语句;若是,则获取所述换符SQL语句中非case句型固定字符的参数,并将所述参数映射到DSL语言的switch句型中对应的位置,以得到DSL语句;若否,则将所述换符SQL语句分割成多个单字符,并将所述单字符中的变量以及函数分别替换成预设的变量表达式以及函数表达式,将所述变量表达式以及所述函数表达式,与所述单字符中除却变量以及函数外剩下的字符合并,得到DSL语句。
上述计算机可读存储介质,上述判断所述换符SQL语句是否为case句型的语句的步骤,包括:在所述换符SQL语句中查找case单词;若在所述换符SQL语句中查找到所述case单词,则判定所述换符SQL语句为case句型的语句;若在所述换符SQL语句中查找不到所述case单词,则判定所述换符SQL语句不是case句型的语句。
在一个实施例中,上述判断所述换符SQL语句是否为case句型的语句的步骤,包括:将所述换符SQL语句分割成操作部分以及条件部分,所述操作部分为所述SQL语句中代表运行操作的部分,所述条件部分为所述SQL语句中代表判断条件的部分;判定所述操作部分中是否包含case单词;若是,则判定所述换符SQL语句是case句型的语句,否则,则判定所述换符SQL语句不是case句型的语句。
在一个实施例中,上述将所述换符SQL语句分割成操作部分以及条件部分的步骤,包括:从所述换符SQL语句中查找select单词以及where单词;以所述where单词的起始字符为分割点将所述换符SQL语句分成所述操作部分以及所述条件部分,所述操作部分为从所述select单词的起始字符到where单词的起始字符之间的内容,所述条件部分为所述where单词起始字符到所述SQL语句结束字符之间的内容。
在一个实施例中,上述将所述换符SQL语句分割成多个单字符,并将所述单字符中的变量以及函数分别替换成预设的变量表达式以及函数表达式,将所述变量表达式以及所述函数表达式,与所述单字符中除却变量以及函数剩下外的字符合并,得到DSL语句的步骤,包括:将所述换符SQL语句分割成第一操作部分以及第一条件部分;分别对所述第一操作部分以及所述第一条件部分进行字符分割,得到包含分别多个单字符的第一操作部分以及第一条件部分;将所述包含分别多个单字符的第一操作部分以及第一条件部分中的变量以及函数分别替换成所述变量表达式以及所述函数表达式,以得到第二操作部分以及第二条件部分;将所述第二操作部分以及所述第二条件部分按所述DSL语言的格式进行合并,得到所述DSL语句。
在一个实施例中,上述将所述包含分别多个单字符的第一操作部分以及第一条件部分中的变量以及函数分别替换成所述变量表达式以及所述函数表达式,以得到第二操作部分以及第二条件部分的步骤,包括:将所述第一操作部分以及所述第一条件部分中的字符遍历,逐个判断是否为所述DSL逻辑操作符;当判定所述字符不为所述DSL逻辑操作符时,识别所述字符的种类,所述字符的种类包括常量、所述变量以及所述函数,并依据所述字符的种类将所述字符替换成对应的表达式,直至将所述第一操作部分以及第一条件部分中的所有变量以及函数均替换成对应的表达式,以得到对应的所述第二操作部分以及第二条件部分。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM一多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种SQL语言转成DSL语言的方法,其特征在于,包括:
获取待转换的SQL语句;
将所述SQL语句中的SQL逻辑操作符替换成与所述SQL逻辑操作符含义相同的DSL语言的DSL逻辑操作符,得到换符SQL语句;
判断所述换符SQL语句是否为case句型的语句;
若是,则获取所述换符SQL语句中非case句型固定字符的参数,并将所述参数映射到DSL语言的switch句型中对应的位置,以得到DSL语句;
若否,则将所述换符SQL语句分割成多个单字符,并将所述单字符中的变量以及函数分别替换成预设的变量表达式以及函数表达式,将所述变量表达式以及所述函数表达式,与所述单字符中除却变量以及函数外剩下的字符合并,得到DSL语句。
2.根据权利要求1所述的SQL语言转成DSL语言的方法,其特征在于,所述判断所述换符SQL语句是否为case句型的语句的步骤,包括:
在所述换符SQL语句中查找case单词;
若在所述换符SQL语句中查找到所述case单词,则判定所述换符SQL语句为case句型的语句;
若在所述换符SQL语句中查找不到所述case单词,则判定所述换符SQL语句不是case句型的语句。
3.根据权利要求1所述的SQL语言转成DSL语言的方法,其特征在于,所述判断所述换符SQL语句是否为case句型的语句的步骤,包括:
将所述换符SQL语句分割成操作部分以及条件部分,所述操作部分为所述SQL语句中代表运行操作的部分,所述条件部分为所述SQL语句中代表判断条件的部分;
判断所述操作部分中是否包含case单词;
若是,则判定所述换符SQL语句是case句型的语句,否则,则判定所述换符SQL语句不是case句型的语句。
4.根据权利要求3所述的SQL语言转成DSL语言的方法,其特征在于,所述将所述换符SQL语句分割成操作部分以及条件部分的步骤,包括:
从所述换符SQL语句中查找select单词以及where单词;
以所述where单词的起始字符为分割点将所述换符SQL语句分成所述操作部分以及所述条件部分,所述操作部分为从所述select单词的起始字符到where单词的起始字符之间的内容,所述条件部分为所述where单词起始字符到所述SQL语句结束字符之间的内容。
5.根据权利要求1所述的SQL语言转成DSL语言的方法,其特征在于,所述将所述换符SQL语句分割成多个单字符,并将所述单字符中的变量以及函数分别替换成预设的变量表达式以及函数表达式,将所述变量表达式以及所述函数表达式,与所述单字符中除却变量以及函数外剩下的字符合并,得到DSL语句的步骤,包括:
将所述换符SQL语句分割成第一操作部分以及第一条件部分;
分别对所述第一操作部分以及所述第一条件部分进行字符分割,得到包含分别多个单字符的第一操作部分以及第一条件部分;
将所述包含分别多个单字符的第一操作部分以及第一条件部分中的变量以及函数分别替换成所述变量表达式以及所述函数表达式,以得到第二操作部分以及第二条件部分;
将所述第二操作部分以及所述第二条件部分按所述DSL语言的格式进行合并,得到所述DSL语句。
6.根据权利要求5所述的SQL语言转成DSL语言的方法,其特征在于,所述将包含分别多个单字符的第一操作部分以及第一条件部分中的变量以及函数分别替换成所述变量表达式以及所述函数表达式,以得到第二操作部分以及第二条件部分的步骤,包括:
将所述第一操作部分以及所述第一条件部分中的字符遍历,逐个判断是否为所述DSL逻辑操作符;
当判定所述字符不为所述DSL逻辑操作符时,识别所述字符的种类,所述字符的种类包括常量、所述变量以及所述函数,并依据所述字符的种类将所述字符替换成对应的表达式,直至将所述第一操作部分以及第一条件部分中的所有变量以及函数均替换成对应的表达式,以得到对应的所述第二操作部分以及第二条件部分。
7.一种SQL语言转成DSL语言的装置,其特征在于,包括:
获取语句单元,用于获取待转换的SQL语句;
替换符号单元,用于将所述SQL语句中的SQL逻辑操作符替换成与所述SQL逻辑操作符含义相同的DSL语言的DSL逻辑操作符,得到换符SQL语句;
判断句型单元,用于判断所述换符SQL语句是否为case句型的语句;
第一转换单元,用于判定所述换符SQL语句为case句型的语句时,获取所述换符SQL语句中非case句型固定字符的参数,并将所述参数映射到DSL语言的switch句型中对应的位置,以得到所述DSL语句;
第二转换单元,用于判断所述换符SQL语句不为case句型的语句时,将所述换符SQL语句分割成多个单字符,并将所述单字符中的变量以及函数分别替换成预设的变量表达式以及函数表达式,将所述变量表达式以及所述函数表达式,与所述单字符中除却变量以及函数外剩下的字符合并,得到DSL语句。
8.根据权利要求7所述的SQL语言转成DSL语言的装置,其特征在于,所述判断句型单元包括:
查找单词子单元,用于在所述换符SQL语句中查找case单词;
第一判定子单元,用于在所述换符SQL语句中查找到所述case单词时,则判定所述换符SQL语句为case句型的语句;
第二判定子单元,用于在所述换符SQL语句中查找不到所述case单词时,则判定所述换符SQL语句不是case句型的语句。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN201910341161.XA 2019-04-25 2019-04-25 Sql语言转成dsl语言的方法、装置、计算机设备和存储介质 Active CN110175031B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910341161.XA CN110175031B (zh) 2019-04-25 2019-04-25 Sql语言转成dsl语言的方法、装置、计算机设备和存储介质
PCT/CN2019/103545 WO2020215576A1 (zh) 2019-04-25 2019-08-30 Sql语言转成dsl语言的方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910341161.XA CN110175031B (zh) 2019-04-25 2019-04-25 Sql语言转成dsl语言的方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN110175031A true CN110175031A (zh) 2019-08-27
CN110175031B CN110175031B (zh) 2023-08-18

Family

ID=67690131

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910341161.XA Active CN110175031B (zh) 2019-04-25 2019-04-25 Sql语言转成dsl语言的方法、装置、计算机设备和存储介质

Country Status (2)

Country Link
CN (1) CN110175031B (zh)
WO (1) WO2020215576A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020215576A1 (zh) * 2019-04-25 2020-10-29 平安科技(深圳)有限公司 Sql语言转成dsl语言的方法、装置、计算机设备和存储介质
CN111984669A (zh) * 2020-07-08 2020-11-24 福建亿能达信息技术股份有限公司 一种支持动态变量的函数式sql查询方法、装置、设备和介质
CN116185495A (zh) * 2022-12-13 2023-05-30 易保网络技术(上海)有限公司 计算函数构建方法、计算引擎、电子设备及可读存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120124063A1 (en) * 2010-11-12 2012-05-17 Business Objects Software Ltd. Method and system for specifying, preparing and using parameterized database queries
CN104503816A (zh) * 2014-12-30 2015-04-08 西安电子科技大学 一种硬件语言vhdl到msvl的自动转换系统
CN106934062A (zh) * 2017-03-28 2017-07-07 广东工业大学 一种查询elasticsearch的实现方法及系统
CN106970802A (zh) * 2017-04-25 2017-07-21 北京航天飞行控制中心 在领域特定语言中集成编程脚本语言的方法及装置
CN107133267A (zh) * 2017-04-01 2017-09-05 北京京东尚科信息技术有限公司 查询elasticsearch集群的方法、装置、电子设备和可读存储介质
CN107153535A (zh) * 2017-03-27 2017-09-12 武汉斗鱼网络科技有限公司 一种操作ElasticSearch的方法及装置
CN107368578A (zh) * 2017-07-20 2017-11-21 山东合天智汇信息技术有限公司 一种快速生成es查询语句的方法及系统
CN108182215A (zh) * 2017-12-22 2018-06-19 微梦创科网络科技(中国)有限公司 一种结构化查询语言sql性能统计的方法及装置
CN108446289A (zh) * 2017-09-26 2018-08-24 北京中安智达科技有限公司 一种支持异构数据库的数据检索方法
CN108491470A (zh) * 2018-03-07 2018-09-04 北京奇安信科技有限公司 针对搜索服务器的管理方法、服务端及管理方法
CN109522319A (zh) * 2018-11-12 2019-03-26 北京懿医云科技有限公司 基于dsl的数据映射方法及装置、电子设备、存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7779396B2 (en) * 2005-08-10 2010-08-17 Microsoft Corporation Syntactic program language translation
US9146957B2 (en) * 2012-12-20 2015-09-29 Business Objects Software Ltd. Method and system for generating optimal membership-check queries
CN105335412B (zh) * 2014-07-31 2019-06-11 阿里巴巴集团控股有限公司 用于数据转换、数据迁移的方法和装置
CN110175031B (zh) * 2019-04-25 2023-08-18 平安科技(深圳)有限公司 Sql语言转成dsl语言的方法、装置、计算机设备和存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120124063A1 (en) * 2010-11-12 2012-05-17 Business Objects Software Ltd. Method and system for specifying, preparing and using parameterized database queries
CN104503816A (zh) * 2014-12-30 2015-04-08 西安电子科技大学 一种硬件语言vhdl到msvl的自动转换系统
CN107153535A (zh) * 2017-03-27 2017-09-12 武汉斗鱼网络科技有限公司 一种操作ElasticSearch的方法及装置
CN106934062A (zh) * 2017-03-28 2017-07-07 广东工业大学 一种查询elasticsearch的实现方法及系统
CN107133267A (zh) * 2017-04-01 2017-09-05 北京京东尚科信息技术有限公司 查询elasticsearch集群的方法、装置、电子设备和可读存储介质
CN106970802A (zh) * 2017-04-25 2017-07-21 北京航天飞行控制中心 在领域特定语言中集成编程脚本语言的方法及装置
CN107368578A (zh) * 2017-07-20 2017-11-21 山东合天智汇信息技术有限公司 一种快速生成es查询语句的方法及系统
CN108446289A (zh) * 2017-09-26 2018-08-24 北京中安智达科技有限公司 一种支持异构数据库的数据检索方法
CN108182215A (zh) * 2017-12-22 2018-06-19 微梦创科网络科技(中国)有限公司 一种结构化查询语言sql性能统计的方法及装置
CN108491470A (zh) * 2018-03-07 2018-09-04 北京奇安信科技有限公司 针对搜索服务器的管理方法、服务端及管理方法
CN109522319A (zh) * 2018-11-12 2019-03-26 北京懿医云科技有限公司 基于dsl的数据映射方法及装置、电子设备、存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020215576A1 (zh) * 2019-04-25 2020-10-29 平安科技(深圳)有限公司 Sql语言转成dsl语言的方法、装置、计算机设备和存储介质
CN111984669A (zh) * 2020-07-08 2020-11-24 福建亿能达信息技术股份有限公司 一种支持动态变量的函数式sql查询方法、装置、设备和介质
CN116185495A (zh) * 2022-12-13 2023-05-30 易保网络技术(上海)有限公司 计算函数构建方法、计算引擎、电子设备及可读存储介质
CN116185495B (zh) * 2022-12-13 2023-10-13 易保网络技术(上海)有限公司 计算函数构建方法、计算引擎、电子设备及可读存储介质

Also Published As

Publication number Publication date
WO2020215576A1 (zh) 2020-10-29
CN110175031B (zh) 2023-08-18

Similar Documents

Publication Publication Date Title
CN110175031A (zh) Sql语言转成dsl语言的方法、装置、计算机设备和存储介质
CN100470480C (zh) 分析程序加速器装置以及更新其的方法
US8145665B2 (en) Bit string search apparatus, search method, and program
US7200584B2 (en) Time series pattern extraction apparatus and method
CN109344230A (zh) 代码库文件生成、代码搜索、联结、优化以及移植方法
US7266559B2 (en) Method and apparatus for adapting a search classifier based on user queries
CN110442603A (zh) 地址匹配方法、装置、计算机设备及存储介质
CN106874256A (zh) 识别领域命名实体的方法及装置
JPH11505052A (ja) 語彙辞書の検索範囲を削減するシステム及び方法
CN108959575B (zh) 一种企业关联关系信息挖掘方法及装置
CN109614309A (zh) 比较测试结果的方法、装置、计算机设备以及存储介质
CN112306497A (zh) 一种将自然语言转化为程序代码的方法及系统
Cannataro et al. XAHM: an adaptive hypermedia model based on XML
CN110096418A (zh) 业务日志分析方法、装置、计算机设备和存储介质
Fischer et al. Deterministic sparse suffix sorting on rewritable texts
CA2665858A1 (en) Character input program, character input device, and character input method
CN109710913A (zh) 基于依存分析的语义层次结构生成方法及终端
JP5780036B2 (ja) 抽出プログラム、抽出方法及び抽出装置
FI120807B (fi) Tietokohteiden suodatus
JP2009098952A (ja) 情報検索システム
CN109491884A (zh) 代码性能检测方法、装置、计算机设备和介质
US7269592B2 (en) Computer system
KR100659370B1 (ko) 시소러스 매칭에 의한 문서 db 형성 방법 및 정보검색방법
JPWO2014170965A1 (ja) 文書処理方法、文書処理装置および文書処理プログラム
Guillon et al. Two-Way Automata and One-Tape Machines: Read Only Versus Linear Time

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