一种参数提示方法、装置、设备和存储介质制造方法及图纸

技术编号:22166688 阅读:37 留言:0更新日期:2019-09-21 10:29
本发明专利技术实施例公开了一种参数提示方法、装置、设备和存储介质。其中,该方法包括:如果当前结构化查询语言SQL操作语句预编译失败,则确定所述当前SQL操作语句中的待提示参数;如果所述待提示参数涉及数据对象中的数据项,则根据预设内存结构中所述数据对象的定义确定所述待提示参数的提示信息;如果所述待提示参数未涉及数据对象中的数据项,则根据所述待提示参数关联的操作定义确定所述待提示参数的提示信息。本发明专利技术实施例提供的技术方案,在预编译失败时,实现参数提示信息的获取,提高参数提示的全面性;同时根据对象定义或者操作定义确定的提示信息能够表示待提示参数的具体值信息,从而使用户输入准确的待提示参数,提高语句执行的成功率。

A Method, Device, Equipment and Storage Medium for Indicating Parameters

【技术实现步骤摘要】
一种参数提示方法、装置、设备和存储介质
本专利技术实施例涉及数据库处理领域,尤其涉及一种参数提示方法、装置、设备和存储介质。
技术介绍
数据库在执行结构化查询语言(StructuredQueryLanguage,SQL)或者过程化SQL(ProceduralLanguage/SQL,PL/SQL)过程中,有时会需要用户输入SQL语句中绑定的动态参数的具体值,如执行INSERTINTOT1VALUES(&C1,&C2)时,表示在表T1中插入动态参数C1和动态参数C2,此时数据库会分别提示用户当前需要输入C1和C2的具体值,但不会提示C1和C2的数据类型。目前,数据库通常通过预编译SQL语句,来获取该SQL语句中绑定的动态参数的具体信息,预编译是指仅执行SQL语句执行过程中的词法分析、语法分析、语义分析、执行计划优化及物理计划生成等操作,而不执行真正的SQL语句执行操作;但预编译SQL语句需要该SQL语句中绑定的动态参数所对应的数据对象已经存在于数据库中,否则预编译会失败;例如下述SQL语句:CREATETABLET1(C1INT,C2VARCHAR(50));INSERTINTOT1VALUES(?,?);其中,(?,?)为该SQL语句中绑定的动态参数,此时SQL语句中没有具体参数值,需要提示用户输入本次插入到表T1中的具体参数值;此时如果统一预编译两条语句时,由于第一条语句未执行,数据库中不存在表T1,则预编译报错,无法获取该SQL语句中绑定的动态参数的具体信息。而且由于在不同数据库中预编译的实现方式各不相同,无法完全保证通过预编译方式能够准确获取SQL语句中绑定的操作参数的具体信息,并提示给用户。
技术实现思路
本专利技术实施例提供了一种参数提示方法、装置、设备和存储介质,在预编译失败时,实现参数提示信息的获取,提高参数提示的全面性。第一方面,本专利技术实施例提供了一种参数提示方法,该方法包括:如果当前SQL操作语句预编译失败,则确定所述当前SQL操作语句中的待提示参数;如果所述待提示参数涉及数据对象中的数据项,则根据预设内存结构中所述数据对象的定义确定所述待提示参数的提示信息;如果所述待提示参数未涉及数据对象中的数据项,则根据所述待提示参数关联的操作定义确定所述待提示参数的提示信息。第二方面,本专利技术实施例提供了一种参数提示装置,该装置包括:参数确定模块,用于如果当前SQL操作语句预编译失败,则确定所述当前SQL操作语句中的待提示参数;第一提示确定模块,用于如果所述待提示参数涉及数据对象中的数据项,则根据预设内存结构中所述数据对象的定义确定所述待提示参数的提示信息;第二提示确定模块,用于如果所述待提示参数未涉及数据对象中的数据项,则根据所述待提示参数关联的操作定义确定所述待提示参数的提示信息。第三方面,本专利技术实施例提供了一种设备,该设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术任意实施例所述的参数提示方法。第四方面,本专利技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本专利技术任意实施例所述的参数提示方法。本专利技术实施例提供了一种参数提示方法、装置、设备和存储介质,在当前SQL操作语句预编译失败,无法得到待提示参数的具体信息时,则解析当前SQL操作语句中的待提示参数,并通过预设内存结构中待提示参数涉及的数据对象的定义或者的待提示参数关联的操作定义确定待提示参数的提示信息,从而在预编译失败时,实现参数提示信息的获取,提高参数提示的全面性;同时根据对象定义或者操作定义确定的提示信息能够表示待提示参数的具体值信息,从而使用户输入准确的待提示参数,提高语句执行的成功率。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1为本专利技术实施例一提供的一种参数提示方法的流程图;图2为本专利技术实施例二提供的一种参数提示方法的流程图;图3为本专利技术实施例三提供的一种参数提示装置的结构示意图;图4为本专利技术实施例四提供的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。此外,在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。实施例一图1为本专利技术实施例一提供的一种参数提示方法的流程图,本实施例可适用于任一种数据库在执行SQL操作语句的过程中需要用户输入对应参数值的情况中。本实施例提供的一种参数提示方法可以由本专利技术实施例提供的参数提示装置来执行,该装置可以通过软件和/或硬件的方式来实现,并集成在执行本方法的设备中,在本实施例中执行本方法的设备可以是平板电脑、台式机和笔记本等任意一种可以承载有数据库应用的智能终端。具体的,参考图1,该方法可以包括如下步骤:S110,如果当前SQL操作语句预编译失败,则确定当前SQL操作语句中的待提示参数。具体的,在数据库中执行各种数据操作时,用户会根据需要输入对应的SQL操作语句,进而根据该SQL操作语句执行对应的操作。可选的,SQL操作语句是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名。由于数据库在执行SQL操作语句的过程中,有时会需要用户根据提示输入SQL操作语句中预先绑定的某些动态参数的值,此时通过预编译该SQL操作语句确定动态参数的类型、参数范围等具体信息;其中,预编译是指仅执行对SQL操作语句执行过程中的词法分析、语法分析、语义分析、执行计划优化及物理计划生成等操作,而不执行SQL操作语句的具体执行操作;如CREATETABLET1(C1INT,C2VARCHAR(50))中,预编译是对该条SQL操作语句进行前期的分析,而不在数据库中直接创建表T1。同时,本实施例中的待提示参数是指SQL操作语句中指定操作的需要提示给用户输入具体数据值的动态变量;如INSERTINTOT1VALUES(?,?)中需要向表T1中插入的(?,?)参数。可选的,由于各个数据库中预编译执行依赖的条件和限制条件不同,对SQL操作语句的预编译也可能会报错,无法得到SQL操作语句中待提示参数的详细信息,因此本实施例在通过预编译当前SQL操作语句确定待提示参数的详细信息时,如果预编译失败,则采用上下文解析技术对当前SQL操作语句进行含义解析,从而确定出当前SQL操作语句中的待提示参数。可选的,本实施例中在判断当前SQL操作语句是否预编译失败之前,还可以包括:获取用户输入的当前SQL操作语句并进行预编译,得到对应的预编译结果。具体的,数据库在执行各项数据操作时,首先获取用户根据当前的操作需求输入的当前SQL操作语句,并采用现有的预编译方式对当前SQL操作语句进行预编译,该预编译可以是对当前SQL操作语句中的多条语句逐条进行预编译,也可以是多条语句一起执行预编译,进而得到对应的预编译结果;此时如果预编译成功,则可以直接获取待提示参数的详细信息,如果预编译失败,则采用本本文档来自技高网
...

【技术保护点】
1.一种参数提示方法,其特征在于,包括:如果当前结构化查询语言SQL操作语句预编译失败,则确定所述当前SQL操作语句中的待提示参数;如果所述待提示参数涉及数据对象中的数据项,则根据预设内存结构中所述数据对象的定义确定所述待提示参数的提示信息;如果所述待提示参数未涉及数据对象中的数据项,则根据所述待提示参数关联的操作定义确定所述待提示参数的提示信息。

【技术特征摘要】
1.一种参数提示方法,其特征在于,包括:如果当前结构化查询语言SQL操作语句预编译失败,则确定所述当前SQL操作语句中的待提示参数;如果所述待提示参数涉及数据对象中的数据项,则根据预设内存结构中所述数据对象的定义确定所述待提示参数的提示信息;如果所述待提示参数未涉及数据对象中的数据项,则根据所述待提示参数关联的操作定义确定所述待提示参数的提示信息。2.根据权利要求1所述的方法,其特征在于,所述当前SQL操作语句中包括至少一条SQL子操作语句。3.根据权利要求2所述的方法,其特征在于,所述确定所述当前SQL操作语句中的待提示参数,包括:逐条解析所述当前SQL操作语句中的SQL子操作语句;如果当前SQL子操作语句涉及数据对象的定义,则将该数据对象的定义存储到所述预设内存结构中;如果当前SQL子操作语句包含所述待提示参数,则判断所述待提示参数在所述当前SQL子操作语句中是否涉及数据对象中的数据项。4.根据权利要求1所述的方法,其特征在于,所述确定所述当前SQL操作语句中的待提示参数,包括:解析所述当前SQL操作语句所在的SQL脚本,得到所述待提示参数。5.根据权利要求1所述的方法,其特征在于,还包括:获取用户输...

【专利技术属性】
技术研发人员:尹淑彬杨超
申请(专利权)人:上海达梦数据库有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1