CN112000690B - 解析结构化操作语句的方法和装置 - Google Patents
解析结构化操作语句的方法和装置 Download PDFInfo
- Publication number
- CN112000690B CN112000690B CN202010835551.5A CN202010835551A CN112000690B CN 112000690 B CN112000690 B CN 112000690B CN 202010835551 A CN202010835551 A CN 202010835551A CN 112000690 B CN112000690 B CN 112000690B
- Authority
- CN
- China
- Prior art keywords
- reserved
- structured operation
- keyword
- character string
- structured
- 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
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000008569 process Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种解析结构化操作语句的方法和装置,方法包括:获取结构化操作语句;所述结构化操作语句根据第一语法规则生成,用于输入到采用第二语法规则的数据库服务器;在所述结构化操作语句中的一对象标识符为所述第二语法规则中的保留关键字的情况下,采用自定义字符串替换所述保留关键字,作为所述数据库服务器的临时保留关键字;对所述结构化操作语句进行解析。采用前述的方法,用户仍然可以按照第一语法规则生成结构化操作语句,无需如现有技术中按照新规则修改查询语句或者修改数据表的内容,也就提高了第一数据库服务器的易用性。
Description
技术领域
本申请涉及数据库技术领域,尤其涉及一种解析结构化操作语句的方法和装置。
背景技术
在接收到用户输入的结构化操作语句时,数据库管理系统首先对结构化操作语句进行解析,以判断结构化操作语句是否是一个合法的、可以规约到数据库服务器可以识别的语法;如果不能规约到数据库服务器可以识别的语法,则数据库管理系统报告语法解析错误。
结构化操作语句的解析分为词法解析和语法解析两部分;词法解析用于负责识别标识符和关键词,并将识别到的各个关键词和标识符都生成一记号并传递给语法解析;语法解析根据词法解析输出的元素和语法规则尝试规约,并在规约成功是输出语法解析树。
为了能够实现词法解析和语法解析,每个数据库服务器均会确定保留关键字,发布关键字列表作为语法规则的一部分。因为不同的数据库服务器提供的结构化查询范围不同,语法规则不同,其保留关键字列表也会不同。在某个数据库服务器中并不是保留关键字的字符,在另一个数据库服务器中可能是保留关键字。
某一支持一数据库服务器(源数据库服务器)语法规则的应用程序使用的底层数据库服务器可能由一数据库服务器移植为另一数据库服务器(目标数据库服务器),并保持应用语法规则不变。因为另一数据库服务器和一数据库服务器保留关键字列表不同,某些在另一数据库服务器中使用的保留关键字在应用程序中作为对象标识符使用。如果应用程序使用此保留关键字作为对象标识符使用形成结构化操作语句,则另一数据库服务器无法根据此结构化操作语句归于成功而输出语法解析树。
目前解决前段提及的问题的方法包括:(1)更改数据表的命名;(2)在创建结构化操作语句时使用双引号作为界定符界定表名。如论采用哪种查询方式,都要对涉及此表的结构化操作语句进行修改,而改变应用程序使用者的使用习惯。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供一种解析结构化操作语句的方法和装置。
一方面,本申请提供一种解析结构化操作语句的方法,包括:
获取结构化操作语句;所述结构化操作语句根据第一语法规则生成,用于输入到采用第二语法规则的数据库服务器;
在所述结构化操作语句中的一对象标识符为所述第二语法规则中的保留关键字的情况下,采用自定义字符串替换所述保留关键字,作为所述数据库服务器的临时保留关键字;
对所述结构化操作语句进行解析。
可选地,所述采用自定义字符串替换所述保留关键字包括:
根据所述保留关键字查询第一关键字替换表,获取对应的预定替换字符串;
在所述预定替换字符串与所述结构化操作语句中的其他元素不冲突的情况下,将所述预定替换字符串作为所述自定义字符串,替换所述保留关键字。
可选地,所述方法还包括:
在所述预定替换字符串与所述结构化操作语句中的其他元素冲突的情况下,生成一随机字符串作为所述自定义字符串,替换所述保留关键字。
可选地,所述第一关键字替换表根据所述数据库服务器对应的保留关键字字母排序;
所述根据所述保留关键字查询第一关键字替换表,包括:
基于所述保留关键字,采用二分查找方法查询所述第一关键字替换表。
可选地,在获取结构化操作语句后,还包括:
将所述结构化操作语句中根据第一语法规则使用的保留关键字,替换为根据第二语法规则使用的、对应相同涵义的保留关键字。
另一方面,本申请提供一种解析结构化操作语句的装置,包括:
获取单元,用于获取结构化操作语句;所述结构化操作语句根据第一语法规则生成,用于输入到采用第二语法规则的数据库服务器;
替换单元,用于在所述结构化操作语句中的一对象标识符为所述第二语法规则中的保留关键字的情况下,采用自定义字符串替换所述保留关键字,作为所述数据库服务器的临时保留关键字;
解析单元,用于对所述结构化操作语句进行解析。
可选地,所述替换单元,根据所述保留关键字查询第一关键字替换表,获取对应的预定替换字符串;
在所述预定替换字符串与所述结构化操作语句中的其他元素不冲突的情况下,将所述预定替换字符串作为所述自定义字符串,替换所述保留关键字,以及,
在所述预定替换字符串与所述结构化操作语句中的其他元素冲突的情况下,生成一随机字符串作为所述自定义字符串,替换所述保留关键字;
或者,所述替换单元生成一随机字符串作为所述自定义字符串,替换所述保留关键字。
可选地,所述替换单元还用于将所述结构化操作语句中根据第一语法规则使用的保留关键字,替换为根据第二语法规则使用的、对应相同涵义的保留关键字。
本申请提供的解析结构化操作语句的方法,将第一数据库服务器中采用对象标识符标识的保留关键字临时替换为自定义字符串对应的保留关键字,无需对结构化操作语句进行修改。采用前述的方法,用户仍然可以按照第一语法规则生成结构化操作语句,无需如现有技术中按照新规则修改查询语句或者修改数据表的内容,也就提高了第一数据库服务器的易用性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的解析结构化操作语句的方法的流程图;
图2是确定自定义字符串替换保留关键字的流程图;
图3是实现保留关键字替换的流程图;
图4是本申请实施例提供的解析结构化操作语句的装置的结构框图;
图5是本申请实施例提供的电子设备的结构示意图;
其中:11-获取单元,12-替换单元,13-解析单元;21-处理器,22-存储器,23-通信接口,24-总线系统。
具体实施方式
为了能够更清楚地理解本申请的上述目的、特征和优点,下面将对本申请的方案进行进一步描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本申请,但本申请还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本申请的一部分实施例,而不是全部的实施例。
本申请实施例提供一种解析结构化操作语句的方法。在对本申请实施例提供的方法做介绍前,首先对本方法使用的场景做介绍。本申请实施例中,解析方法应用于第一数据库服务器,以处理经由应用程序生成的结构化操作语句。
前述应用程序是配套第二数据库服务器开发的应用程序,其仅支持第二数据库服务器对应的语法规则;因为第一数据库服务器对应的语法规则与第二数据库服务器对应的语法规则可能并不完全相同,所以应用程序生成的结构化操作语句可能并不能被第一数据库服务器正确地解析。
本申请实施例提供的解析结构化操作语句的方法,即是一种能够使得第一数据库服务器正确地解析应用程序生成的结构化操作语句的方法。
图1是本申请实施例提供的解析结构化操作语句的方法的流程图。如图1所示,本申请实施例提供的方法包括步骤S101-S104。
S101:获取结构化操作语句。
在应用程序根据用户输入的内容生成结构化操作语句后,应用程序通过数据接口发送给第一数据库服务器。应当注意的是,应用程序和第一数据库服务器可能安装在同一主机上,也可能安装在不同主机上,本申请实施例并不做特别地限定。
如前所述,应用程序是按照第一语法规则生成的结构化操作语句。
第一数据库服务器的数据接口接收都结构化操作语句后,根据结构化操作语句确定是否对自身配置参数进行修改,即执行步骤S102和S103。
S102:判断结构化操作语句中的对象标识符是否为第二语法规则中的保留关键字;如果是,执行步骤S103;如果否,执行步骤S104。
结构化操作语句中的对象标识符是用于表示查询对象的标识符,对象标识符可能用于表示数据表、元组或者数据表中的属性列。例如,如果结构化操作语句为selectGuestAddress from Table;其中GuestAddress和Table均为对象表示符。
应当注意的是,确定结构化操作语句中的对象标识符,是基于第一语法规则确定的;对应的,第一数据库服务器中存储有第一语法规则,并根据第一语法规则解析结构化操作语句,确定其中的对象标识符。
判断对象标识符是否为第二语法规则中的保留关键字,是将各个对象标识符与第二语法规则保留关键字列表中的保留关键字别进行逐个比对,确定某一对象标识符是否为第二语法规则中的保留关键字。
例如,如果保留关键字列表中具有保留关键字Table,则select GuestAddressfrom Table中的Table即为保留关键字。
S103:采用自定义字符串替换保留关键字,作为第一数据库服务器的临时关键字。
步骤S103中,采用自定义字符串替换前述的保留关键字,是将第一数据库服务器中的保留关键字临时性采用自定义字符串替换的过程,使得自定义字符串作为第一数据库服务器的临时保留关键字。
应当注意的是,虽然保留关键字被自定义字符串替换,但是保留关键字对应的数据查询操作的具体类型(也就是第一数据库服务器在完成步骤S104后后续执行操作)并没有被删除,而是赋予了自定义字符串。此时,自定义字符串是一临时保留关键字,其至少保留到完成对结构化操作语句进行词法解析和语法解析完成。
可以想到,因为采用自定义字符串作为了第一数据库服务器中的临时保留关键字,替代了保留关键字,所以结构化操作语句中与保留关键字相同的对象标识符无需改变,也能够被第一数据库服务器正确地解析。
本申请实施例中,可以在第一数据库服务器中存储第保留关键字替换表;第保留关键字替换表中存储有第二语法规则中各个保留保健字,以及用于替换各个保留关键字的预定替换字符串。图2是确定自定义字符串替换保留关键字的流程图;如图2所示,确定自定义字符串替换保留关键字的步骤可以细分为S1031-S1034。
S1031:采用保留关键字查询第一关键字替换表,获取对应的预定替换字符串。
步骤S1031是以保留关键字为查询要素,对第一关键字替换表中的保留关键字进行检索,确定此保留关键字对应的预定替换字字符串。
具体应用中,可以将第保留关键字替换表的保留关键字按照字母顺序进行排序;而步骤S1031中采用二分查找的方法,根据第保留关键字的字符确定对第一保留保健字替换表中查询部分,直至获取到对应的自定义字符串。
S1032:判断预定替换字符串是否与结构化操作语句中的其他元素冲突;若否,执行S1033;若是,执行S1034。
应当注意的是,自定义字符串应当是不能与其他保留关键字、其他对象标识符(也就是结构化操作语句中的其他元素)冲突(也就是重复)的自定义字符串;如果自定义字符串为与其他元素冲突的字符串,则会出现解析错误的问题。
为了避免解析错误,因此需要确定预定替换字符串是否与其他元素冲突,继而再确定是否将其作为自定义字符串。
S1033:采用预定替换字符串作为自定义字符串,替换保留关键字。
如果预定替换字符串并不与结构化操作语句中的其他自定义字符串冲突,则可以将其作为自定义字符串。
S1034:生成一随机字符串作为所述自定义字符串,替换所述保留关键字。
如果第一关键字替换表中的自定义字符串与其他对象标识符冲突,则需要采用其他字符串作为自定义字符串。为了避免出现再次冲突的可能性,本申请实施例中采用随机生成的方法,生成一随机字符串作为自定义字符串,替换保留关键字。可以由第一数据库服务器生成另一随机的自定义字符串替换保留关键字。
当然,步骤S103除了采用前述的S1031-S1034外,还可以直接生成随机的自定义字符串替换保留关键字。
S104:对结构化操作语句进行分析。
步骤S104中,对结构化操作语句的解析包括词法解析和语法解析两个部分。其中词法解析是识别对象标识符、保留关键字,并生成对应的标记传递给语法解析模块;随后,语法解析模块按照语法规则和触规则进行语法解析,尝试规约;在规约成功的情况下,语法解析模块生成一语法解析树。
采用前述的步骤S101-S104,在第一语法规则中的保留关键字均是第二语法解析器中保留关键字,而结构查询语句中的对象标识符是第二语法规则中的保留关键字的情况下,本申请实施例可以将第一数据库服务器中采用对象标识符标识的保留关键字临时替换为自定义字符串对应的保留关键字,无需对结构化操作语句进行修改。
采用前述的方法,用户仍然可以按照第一语法规则生成结构化操作语句,无需如现有技术中按照新规则修改查询语句或者修改数据表的内容,也就提高了第一数据库服务器的易用性。
步骤S101-S104中,仅针对结构化操作语句中的对象标识符在第一数据库服务器为保留关键字的情况做分析。实际应用中,针对同一种操作,第一语法规则中采用的保留关键字与第二语法规则中采用的保留关键字可能不同,因此第一数据库服务器也不能正确地解析此类保留关键字。
图3是实现保留关键字替换的流程图。如图3所示,本申请实施例中的解析结构化操作语句的方法还包括步骤S201-S202。
S201:获取结构化操作语句中,按照第一语法规则使用的保留关键字。
步骤S201中获取结构化操作语句中的保留关键字,可以是逐个获取,也可以是同时获取。
S202:判断按照第一语法规则使用的保留关键字,是否为第二语法规则中对应相同涵义的保留关键字;若否,执行S203;若是,执行S204。
应当注意的是,在各种数据库服务器使用中,结构化操作语句中的保留关键字是为了表示某些特定的操作或者特定的条件。也就是说,保留关键字的核心作用是表示特定含义。
实际应用中,虽然第一语法规则和第二语法规则可能采用同样的保留关键字,但是保留保健字在两个语法规则中对应的操作或者条件(也就是涵义)并不相同。另外,两个语法规则可能采用不同的保留关键字表示相同的操作或者条件。在这两种情况下,第一数据库服务器均无法正确地解析结构化操作语句。
为了使得第一数据库服务器能够正确地解析结构化操作语句,需要执行S202,判断结构化操作语句中的保留关键字是否为第二语法规则中对应相同涵义的保留关键字,以确定是否对此保留关键字进行替换。
S203:将结构化操作语句中的保留关键字替换为第二语法规则中使用的,具有相同涵义的保留关键字。
S204:保持结构化操作语句中的保留关键字不变。
通过S203和S204的操作,实际将结构化操作语句从符合第一语法规则的查询语句改写为了至少部分符合第二语法规则的查询语句(如前所述,对象标识符为第二语法规则中的保留关键字的某些字段并没有被修改)。
通过前述的S201-S204,第一数据库服务器按照语法转换规则对基于应用程序生成的结构化操作语句进行了自动改写,保证结构化操作语句能够被第一数据服务器正确地解析。
除了提供前述的解析结构化操作语句的方法外,本申请实施例还挺一种解析结构化操作语句的装置。解析结构化操作语句的装置和解析结构化操作语句的方法采用相同的发明构思。下文对本申请实施例提供的日志压缩装置的结构做介绍。
图4是本申请实施例提供的解析结构化操作语句的装置的结构框图。如图4所示,装置包括获取单元11、替换单元12和解析单元13。
获取单元11用于获取结构化操作语句;结构化操作语句根据第一语法规则生成,用于输入到采用第二语法规则的数据库服务器。
替换单元12用于在结构化操作语句中的对象标识符为第二语法规则中的保留关键字的情况下,采用自定义字符串替换保留关键字,作为数据库服务器的临时保留关键字。
结构化操作语句中的对象标识符是用于表示查询对象的标识符,对象标识符可能用于表示数据表、元组或者数据表中的属性列。例如,如果结构化操作语句为selectGuestAddress from Table;其中GuestAddress和Table均为对象表示符。
应当注意的是,确定结构化操作语句中的对象标识符,是基于第一语法规则确定的;对应的,替换单元12中存储有第一语法规则,并根据第一语法规则解析结构化操作语句,确定其中的对象标识符。
判断对象标识符是否为第二语法规则中的保留关键字,是将各个对象标识符与第二语法规则保留关键字列表中的保留关键字别进行逐个比对,确定某一对象标识符是否为第二语法规则中的保留关键字。
例如,如果保留关键字列表中具有保留关键字Table,则select GuestAddressfrom Table中的Table即为保留关键字。
采用自定义字符串替换前述的保留关键字,是将第一数据库服务器中的保留关键字临时性采用自定义字符串替换的过程,使得自定义字符串作为第一数据库服务器的临时保留关键字。
应当注意的是,虽然保留关键字被自定义字符串替换,但是保留关键字对应的数据查询操作的具体类型(也就是第一数据库服务器在完成步骤S104后后续执行操作)并没有被删除,而是赋予了自定义字符串。此时,自定义字符串是一临时保留关键字,其至少保留到完成对结构化操作语句进行词法解析和语法解析完成。
可以想到,因为采用自定义字符串作为了第一数据库服务器中的临时保留关键字,替代了保留关键字,所以结构化操作语句中与保留关键字相同的对象标识符无需改变,也能够被第一数据库服务器正确地解析。
解析单元13用于对结构化操作语句进行解析。
本申请实施例提供的解析结构化操作语句的装置,可以将第一数据库服务器中采用对象标识符标识的保留关键字临时替换为自定义字符串对应的保留关键字,无需对结构化操作语句进行修改。使用此装置,用户仍然可以按照第一语法规则生成结构化操作语句,无需如现有技术中按照新规则修改查询语句或者修改数据表的内容,也就提高了第一数据库服务器的易用性。
在一个具体应用中,替换单元12可以根据保留关键字查询第一关键字替换表,获取对应的预定替换字符串;
在预定替换字符串与结构化操作语句中的其他元素不冲突的情况下,将预定替换字符串作为自定义字符串,替换保留关键字;
在预定替换字符串与结构化操作语句中的其他元素冲突的情况下,生成一随机字符串作为自定义字符串,替换保留关键字。
在另一个具体应用中,替换单元12可以直接生成一随机字符串作为自定义字符串,替换保留关键字。
在本申请实施例具体应用中,替换单元12还用于将结构化操作语句中根据第一语法规则使用的保留关键字,替换为根据第二语法规则使用的、对应相同涵义的保留关键字。
除了提供前述的日志压缩方法和日志压缩装置外,本申请实施例还提供可以实现前述方法的电子设备。如前所述,电子设备多为服务器。
图5是本申请实施例提供的电子设备的结构示意图。如图5所示,第一服务器包括至少一个处理器21、至少一个存储器22和至少一个通信接口23。通信接口23,用于与外部设备之间的信息传输。
第一服务器中的各个组件通过总线系统24耦合在一起。可理解地,总线系统24用于实现这些组件之间的连接通信。总线系统24除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但为了清楚说明起见,在图5中将各种总线都标为总线系统24。
可以理解,本实施例中的存储器22可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。在一些实施方式中,存储器22存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统和应用程序。
其中,操作系统,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础任务以及处理基于硬件的任务。应用程序,包含各种应用程序,例如媒体播放器(MediaPlayer)、浏览器(Browser)等,用于实现各种应用任务。实现本申请实施例提供的解析结构化操作语句的方法的程序可以包含在应用程序中。
在本申请实施例中,处理器21通过调用存储器22存储的程序或指令,具体的,可以是应用程序中存储的程序或指令,处理器21用于执行本申请实施例提供的解析结构化操作语句的方法的各个步骤。
本申请实施例提供的解析结构化操作语句的方法可以应用于处理器21中,或者由处理器21实现。处理器21可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器21中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器21可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本申请实施例提供的解析结构化操作语句的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器22,处理器21读取存储器22中的信息,结合其硬件完成方法的步骤。
本申请实施例还提出一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行解析结构化操作语句的方法各实施例的步骤,为避免重复描述,在此不再赘述。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种解析结构化操作语句的方法,其特征在于,包括:
获取结构化操作语句;所述结构化操作语句根据第一语法规则生成,用于输入到采用第二语法规则的数据库服务器,所述结构化操作语句包括标识查询对象的对象标识符,所述对象标识符基于所述第一语法规则确定;
在所述结构化操作语句中的对象标识符为所述第二语法规则中的保留关键字的情况下,采用自定义字符串替换所述保留关键字,作为所述数据库服务器的临时保留关键字,并将所述保留关键字对应的数据操作类型赋予所述临时保留关键字;
对所述结构化操作语句进行解析。
2.根据权利要求1所述的解析结构化操作语句的方法,其特征在于,所述采用自定义字符串替换所述保留关键字包括:
根据所述保留关键字查询第一关键字替换表,获取对应的预定替换字符串;
在所述预定替换字符串与所述结构化操作语句中的其他元素不冲突的情况下,将所述预定替换字符串作为所述自定义字符串,替换所述保留关键字。
3.根据权利要求2所述的解析结构化操作语句的方法,其特征在于,还包括:
在所述预定替换字符串与所述结构化操作语句中的其他元素冲突的情况下,生成随机字符串作为所述自定义字符串,替换所述保留关键字。
4.根据权利要求2所述的解析结构化操作语句的方法,其特征在于,
所述第一关键字替换表根据所述数据库服务器对应的保留关键字字母排序;
所述根据所述保留关键字查询第一关键字替换表,包括:
基于所述保留关键字,采用二分查找方法查询所述第一关键字替换表。
5.根据权利要求1-4任一项所述的解析结构化操作语句的方法,其特征在于,在获取结构化操作语句后,还包括:
将所述结构化操作语句中根据第一语法规则使用的保留关键字,替换为根据第二语法规则使用的、对应相同涵义的保留关键字。
6.一种解析结构化操作语句的装置,其特征在于,包括:
获取单元,用于获取结构化操作语句;所述结构化操作语句根据第一语法规则生成,用于输入到采用第二语法规则的数据库服务器,所述结构化操作语句包括标识查询对象的对象标识符,所述对象标识符基于所述第一语法规则确定;
替换单元,用于在所述结构化操作语句中的一对象标识符为所述第二语法规则中的保留关键字的情况下,采用自定义字符串替换所述保留关键字,作为所述数据库服务器的临时保留关键字,并将所述保留关键字对应的数据操作类型赋予所述临时保留关键字;
解析单元,用于对所述结构化操作语句进行解析。
7.根据权利要求6所述的解析结构化操作语句的装置,其特征在于,所述替换单元,根据所述保留关键字查询第一关键字替换表,获取对应的预定替换字符串;
在所述预定替换字符串与所述结构化操作语句中的其他元素不冲突的情况下,将所述预定替换字符串作为所述自定义字符串,替换所述保留关键字,以及,
在所述预定替换字符串与所述结构化操作语句中的其他元素冲突的情况下,生成一随机字符串作为所述自定义字符串,替换所述保留关键字;
或者,所述替换单元生成一随机字符串作为所述自定义字符串,替换所述保留关键字。
8.根据权利要求6或7所述的解析结构化操作语句的装置,其特征在于,所述替换单元还用于将所述结构化操作语句中根据第一语法规则使用的保留关键字,替换为根据第二语法规则使用的、对应相同涵义的保留关键字。
9.一种电子设备,其特征在于,包括处理器和存储器;
所述处理器通过调用所述存储器存储的程序或指令,用于执行如权利要求1至5任一项所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行如权利要求1至5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010835551.5A CN112000690B (zh) | 2020-08-19 | 2020-08-19 | 解析结构化操作语句的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010835551.5A CN112000690B (zh) | 2020-08-19 | 2020-08-19 | 解析结构化操作语句的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112000690A CN112000690A (zh) | 2020-11-27 |
CN112000690B true CN112000690B (zh) | 2024-03-19 |
Family
ID=73472937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010835551.5A Active CN112000690B (zh) | 2020-08-19 | 2020-08-19 | 解析结构化操作语句的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112000690B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113391818A (zh) * | 2021-03-26 | 2021-09-14 | 广州海量数据库技术有限公司 | 一种编译文件的生成方法以及装置 |
CN112925726A (zh) * | 2021-04-14 | 2021-06-08 | 瀚高基础软件股份有限公司 | 一种自动生成数据库测试用例的方法及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1664816A (zh) * | 2005-03-11 | 2005-09-07 | 谢永强 | 实现不同平台间信息网站移植的方法 |
WO2006026364A2 (en) * | 2004-08-26 | 2006-03-09 | Calpont Corporation | Semantic processor for a hardware database management system |
WO2010010920A1 (ja) * | 2008-07-25 | 2010-01-28 | シャープ株式会社 | 情報処理装置および情報処理方法 |
JP2010039613A (ja) * | 2008-08-01 | 2010-02-18 | Kei Tsuruta | 予約語の変更によるsqlインジェクション対策 |
CN102073490A (zh) * | 2009-11-25 | 2011-05-25 | 阿里巴巴集团控股有限公司 | 转译数据库语言的方法及装置 |
CN102867045A (zh) * | 2012-09-05 | 2013-01-09 | 武汉达梦数据库有限公司 | 基于驱动层实现的异构数据库保留字兼容方法及系统 |
CN105205060A (zh) * | 2014-06-12 | 2015-12-30 | 中兴通讯股份有限公司 | 一种生成word文档的数据库字典的方法及装置 |
CN106503557A (zh) * | 2016-07-08 | 2017-03-15 | 耿童童 | 基于动态变换的sql注入攻击防御系统及防御方法 |
CN109062918A (zh) * | 2018-05-31 | 2018-12-21 | 阿里巴巴集团控股有限公司 | 一种sql语句转换的方法及装置 |
CN109857757A (zh) * | 2019-01-22 | 2019-06-07 | 珠海格力电器股份有限公司 | 数据库间的语句转换方法、系统和终端 |
CN111061757A (zh) * | 2019-12-19 | 2020-04-24 | 用友网络科技股份有限公司 | 数据库的语言转换方法、装置、电子设备及存储介质 |
CN111367938A (zh) * | 2020-03-04 | 2020-07-03 | 海南金盘智能科技股份有限公司 | 数据库指令的生成方法、装置和计算机存储介质 |
-
2020
- 2020-08-19 CN CN202010835551.5A patent/CN112000690B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006026364A2 (en) * | 2004-08-26 | 2006-03-09 | Calpont Corporation | Semantic processor for a hardware database management system |
CN1664816A (zh) * | 2005-03-11 | 2005-09-07 | 谢永强 | 实现不同平台间信息网站移植的方法 |
WO2010010920A1 (ja) * | 2008-07-25 | 2010-01-28 | シャープ株式会社 | 情報処理装置および情報処理方法 |
JP2010039613A (ja) * | 2008-08-01 | 2010-02-18 | Kei Tsuruta | 予約語の変更によるsqlインジェクション対策 |
CN102073490A (zh) * | 2009-11-25 | 2011-05-25 | 阿里巴巴集团控股有限公司 | 转译数据库语言的方法及装置 |
CN102867045A (zh) * | 2012-09-05 | 2013-01-09 | 武汉达梦数据库有限公司 | 基于驱动层实现的异构数据库保留字兼容方法及系统 |
CN105205060A (zh) * | 2014-06-12 | 2015-12-30 | 中兴通讯股份有限公司 | 一种生成word文档的数据库字典的方法及装置 |
CN106503557A (zh) * | 2016-07-08 | 2017-03-15 | 耿童童 | 基于动态变换的sql注入攻击防御系统及防御方法 |
CN109062918A (zh) * | 2018-05-31 | 2018-12-21 | 阿里巴巴集团控股有限公司 | 一种sql语句转换的方法及装置 |
CN109857757A (zh) * | 2019-01-22 | 2019-06-07 | 珠海格力电器股份有限公司 | 数据库间的语句转换方法、系统和终端 |
CN111061757A (zh) * | 2019-12-19 | 2020-04-24 | 用友网络科技股份有限公司 | 数据库的语言转换方法、装置、电子设备及存储介质 |
CN111367938A (zh) * | 2020-03-04 | 2020-07-03 | 海南金盘智能科技股份有限公司 | 数据库指令的生成方法、装置和计算机存储介质 |
Non-Patent Citations (1)
Title |
---|
关系数据库系统移植中模式优化与冲突机制的设计;徐军;戴浩;谢永强;肖孟;刘宝生;;系统工程理论与实践;20071115(第11期);126-131 * |
Also Published As
Publication number | Publication date |
---|---|
CN112000690A (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110795455B (zh) | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 | |
CN109522341B (zh) | 实现基于sql的流式数据处理引擎的方法、装置、设备 | |
US9384236B2 (en) | Method and system for operating on database queries | |
US8364696B2 (en) | Efficient incremental parsing of context sensitive programming languages | |
US9043757B2 (en) | Identifying differences between source codes of different versions of a software when each source code is organized using incorporated files | |
US9311077B2 (en) | Identification of code changes using language syntax and changeset data | |
CN112000690B (zh) | 解析结构化操作语句的方法和装置 | |
CN113672628A (zh) | 数据血缘分析方法、终端设备及介质 | |
CN112541002A (zh) | 程序语言转换方法、装置、电子设备及存储介质 | |
CN112579610A (zh) | 多数据源结构分析方法、系统、终端设备及存储介质 | |
US20140379753A1 (en) | Ambiguous queries in configuration management databases | |
Zhu et al. | Incremental learning of system log formats | |
CN113901083A (zh) | 基于多解析器的异构数据源操作资源解析定位方法和设备 | |
US9053207B2 (en) | Adaptive query expression builder for an on-demand data service | |
CN115599386A (zh) | 代码生成方法、装置、设备及存储介质 | |
US11693859B2 (en) | Systems and methods for data retrieval from a database indexed by an external search engine | |
CN108008947B (zh) | 一种编程语句的智能提示方法、装置、服务器及存储介质 | |
CN112182637A (zh) | 一种安全控制系统、方法、装置及存储介质 | |
CN117076491A (zh) | 一种数据处理方法、存储介质与设备 | |
CN110716949A (zh) | 结构化查询语句自动优化方法、装置、介质及电子设备 | |
CN116010461A (zh) | 数据血缘关系解析方法及装置、存储介质及电子设备 | |
CN114547083A (zh) | 数据处理方法、装置及电子设备 | |
CN111984266A (zh) | 结构化操作语句的解析方法和装置 | |
CN107818100B (zh) | 一种sql语句执行方法及装置 | |
CN115545006B (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 |