CN109376166B - 脚本转换方法、装置、计算机设备及存储介质 - Google Patents

脚本转换方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN109376166B
CN109376166B CN201810950357.4A CN201810950357A CN109376166B CN 109376166 B CN109376166 B CN 109376166B CN 201810950357 A CN201810950357 A CN 201810950357A CN 109376166 B CN109376166 B CN 109376166B
Authority
CN
China
Prior art keywords
script
preset
converted
target
conversion
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
Application number
CN201810950357.4A
Other languages
English (en)
Other versions
CN109376166A (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 Property and Casualty Insurance Company of China Ltd
Original Assignee
Ping An Property and Casualty Insurance Company of China 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 Property and Casualty Insurance Company of China Ltd filed Critical Ping An Property and Casualty Insurance Company of China Ltd
Priority to CN201810950357.4A priority Critical patent/CN109376166B/zh
Publication of CN109376166A publication Critical patent/CN109376166A/zh
Application granted granted Critical
Publication of CN109376166B publication Critical patent/CN109376166B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/37Compiler construction; Parser generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • 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

本申请公开了一种脚本转换方法、装置、计算机设备及存储介质,其中方法包括:获取用户输入的脚本标识和目标脚本类型;获取所述脚本标识对应的待转换脚本,解析所述待转换脚本以得到解析结果,所述解析结果包括脚本参数信息;根据所述脚本参数信息确定脚本转换规则;根据确定的脚本转换规则将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句;根据转换后的目标脚本语句生成目标脚本。该方法可应用于大数据的数据仓库中,可将数据仓库的历史脚本快速自动地完成脚本的转换,由此提高了脚本的转换效率。

Description

脚本转换方法、装置、计算机设备及存储介质
技术领域
本申请涉及互联网技术领域,尤其涉及一种脚本转换方法、装置、计算机设备及存储介质。
背景技术
目前,在互联网技术领域,Oracle数据库为应用系统的数据存储、访问和管理提供了较好的支持,但是随着数据规模的发展,应用系统所需要承载和处理的数据规模呈几何级数增长,已经进入了“大数据”时代,大型企业级的应用系统面临“数据瓶颈”的问题,面对这些问题,以Oracle为代表的关系数据库的局限性日益明显,如果还采用SQL(StructuredQuery Language,结构化查询语言)查询方式访问数据库,会导致数据在Oracle的响应速度较慢,因此需要引进新的查询技术以解决响应速度较慢的问题,比如引入Hive技术来进行数据查询,当使用Hive技术查询处理,需要添加与Hive对应的脚本,或者手动修改原来的SQL脚本,然而手动修改SQL脚本较为费时费力。因此,有必要提供一种脚本转换方法以解决上述问题。
发明内容
本申请提供了一种脚本转换方法、装置、计算机设备及存储介质,以解决现有的手动修改脚本的方式所存在的费时费力的问题。
第一方面,本申请提供了一种脚本转换方法,其包括:
获取用户输入的脚本标识和目标脚本类型;
获取所述脚本标识对应的待转换脚本,解析所述待转换脚本以得到解析结果,所述解析结果包括脚本参数信息;
根据所述脚本参数信息确定脚本转换规则,所述脚本转换规则包括第一预设转换规则和第二预设转换规则;
根据确定的第一预设转换规则或第二预设转换规则将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句;
根据转换后的目标脚本语句生成目标脚本。
第二方面,本申请提供了一种脚本转换装置,其包括:
标识获取单元,用于获取用户输入的脚本标识和目标脚本类型;
获取解析单元,用于获取所述脚本标识对应的待转换脚本,解析所述待转换脚本以得到解析结果,所述解析结果包括脚本参数信息;
规则确定单元,用于根据所述脚本参数信息确定脚本转换规则,所述脚本转换规则包括第一预设转换规则和第二预设转换规则;
语句转换单元,用于根据确定的第一预设转换规则或第二预设转换规则将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句;
脚本生成单元,用于根据转换后的目标脚本语句生成目标脚本。
第三方面,本申请还提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请提供的任意一项所述的脚本转换方法的步骤。
第四方面,本申请还提供了一种存储介质,其中所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行本申请提供的任意一项所述的脚本转换方法的步骤。
本申请实施例提供了脚本转换方法、装置、计算机设备及存储介质,通过获取用户输入的脚本标识和目标脚本类型;获取所述脚本标识对应的待转换脚本,解析所述待转换脚本以得到解析结果,所述解析结果包括脚本参数信息;根据所述脚本参数信息确定脚本转换规则;根据确定的脚本转换规则将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句;根据转换后的目标脚本语句生成目标脚本。该方法可快速自动地完成脚本的转换,由此提高了脚本的转换效率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的一种脚本转换方法的示意流程图;
图2是图1中脚本转换方法的子步骤示意流程图;
图3是图1中脚本转换方法的子步骤示意流程图;
图4是图1中脚本转换方法的子步骤示意流程图;
图5是本申请另一实施例提供的一种脚本转换方法的示意流程图;
图6是图5中脚本转换方法的子步骤示意流程图;
图7是图5中脚本转换方法的子步骤示意流程图;
图8是本申请一实施例提供的一种脚本转换装置的示意性框图;
图9是本申请另一实施例提供的一种脚本转换装置的示意性框图;
图10是本申请一实施例提供的一种计算机设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1是本申请一实施例提供的一种脚本转换方法的示意流程图。如图1所示,该脚本转换方法包括步骤S101~S105。
S101、获取用户输入的脚本标识和目标脚本类型。
在本实施例中,如果用户需要将脚本进行转换,比如将结构化查询语言(Structured Query Language,SQL)脚本转成HQL(Hibernate Query Language)脚本,该SQL脚本为待转换脚本。需要用户输入所述待转换脚本对应的脚本标识,或者用户选定所述待转换脚本,根据所述用户选定的待转换脚本获取所述待转换脚本的脚本标识。同时还需输入所述待转换脚本转换成目标脚本对应的目标脚本类型,该目标脚本类型比如为HQL脚本类型。
S102、获取所述脚本标识对应的待转换脚本,解析所述待转换脚本以得到解析结果,所述解析结果包括脚本参数信息。
在本实施例中,根据所述脚本转换指令中的脚本标识,搜索所述脚本标识对应的待转换脚本,解析所述待转换脚本的具体内容以获得解析结果,所述解析结果包括脚本参数信息,所述脚本参数信息比如为:脚本语言或脚本语句行数等。
S103、根据所述脚本参数信息确定脚本转换规则。
在本实施例中,所述脚本转换规则包括第一预设转换规则和第二预设转换规则。根据所述脚本参数信息中的脚本语句行数确定脚本转换规则,具体根据脚本语句行数选择第一预设转换规则或第二预设转换规则作为所述脚本转换规则。其中所述第一预设转换规则和第二预设转换规则为采用不同的方式进行转换的规则。
在一实施例中,具体是根据所述脚本参数信息中的脚本语句行数确定脚本转换规则,基于此步骤S103包括:子步骤S103a至S103c,如图2所示,S103a、判断所述脚本语句行数是否大于第一预设行数;S103b、选择所述第一预设转换规则作为所述脚本转换规则;S103b、选择所述第二预设转换规则作为所述脚本转换规则。其中,第一预设行数的具体行数比如可以为1000行或2000行等,当然也可以为其他数量,具体根据实际情况而定。根据脚本参数信息中的脚本语句行数判断是采用第一预设转换规则还是第二预设转换规则;若所述脚本语句行数未大于所述第一预设行数,则选择所述第一预设转换规则作为所述脚本转换规则;若所述脚本语句行数大于所述第一预设行数,选择所述第二预设转换规则作为所述脚本转换规则。根据不同的转换规则实现待转换脚本的转换,可以提高转换效率。
S104、根据确定的脚本转换规则将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句。
在本实施例中,如果上述步骤中根据脚本参数信息中的脚本语句行数确定采用所述第一预设转换规则作为脚本转换规则,则根据确定的第一预设转换规则遍历所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句;如果上述步骤中根据脚本参数信息中的脚本语句行数确定采用所述第二预设转换规则作为脚本转换规则,则根据确定的第二预设转换规则遍历所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句。
在一实施例中,若选择所述第一预设转换规则作为所述脚本转换规则,则根据确定的第一预设转换规则将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句,基于此步骤S104包括:子步骤S104a和S104b。如图3所示,S104a、获取预设关键字记录表,其中所述预设关键字记录表记录有所述待转换脚本的语法关键字与所述目标脚本类型的语法关键字的映射关系;S104b、根据所述预设关键字记录表遍历所述待转换脚本的脚本语句,将所述待转换脚本的脚本语句中的语法关键字替换为所述目标脚本类型的语法关键字。
具体地,根据SQL脚本和HQL脚本的采用语言不同点,预先设置一个预设关键字记录表,根据所述预设关键字记录表遍历所述待转换脚本的每一行脚本语句,将所述待转换脚本的每一行脚本语句中的语法关键字替换为所述目标脚本类型的语法关键字。
比如,将SQL脚本特有的关键字替换为HQL脚本专用的关键字,例如SQL可以用两表中间加逗号隔开,但是HQL一定要用关键字,由此可以根据预设关键字记录表判断SQL脚本中的from后面的逗号替换为innerjoin;再例如SQL脚本和HQL脚本中表名的命名规则之间替换等。
在一实施例中,若选择所述第二预设转换规则作为所述脚本转换规则,则根据确定的第二预设转换规则将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句,基于此步骤S104包括:子步骤S104d和S104e。如图4所示,S104d、将所述待转换脚本的脚本语句转换成抽象语法树;S104e、基于所述抽象语法树,将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句。
具体地,对所述待转换脚本的脚本语句进行解析,将所述待转换脚本的脚本语句转换成相应的抽象语法树。基于所述抽象语法树,借助于所述目标脚本类型的运行环境解析所述抽象语法树,进而根据所述抽象语法树生成相应的目标脚本语句。其中,所述基于所述抽象语法树,将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句的步骤,具体包括:调用预设解析器,通过所述预设解析器解析所述抽象语法树以生成目标脚本语句。
S105、根据转换后的目标脚本语句生成目标脚本。
在本实施例中,根据转换的目标脚本语句生成目标脚本,并将生成目标脚本保存至预设目录中,以便管理人员进行调试使用。由此完成所述待转换脚本的转换,同时方便了新脚本的创建,进而提高了工作效率。
上述实施例在接收到脚本转换指令时,获取所述脚本转换指令中的脚本标识和目标脚本类型;获取所述脚本标识对应的待转换脚本,解析所述待转换脚本以得到解析结果,所述解析结果包括脚本参数信息;根据所述脚本参数信息确定脚本转换规则,所述脚本转换规则包括第一预设转换规则和第二预设转换规则;根据确定的第一预设转换规则或第二预设转换规则将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句;根据转换后的目标脚本语句生成目标脚本。该方法根据脚本参数选择不同的预设转换规则以实现脚本语句的转换,由此可快速自动地完成脚本的转换,进而提高了脚本的转换效率。
请参阅图5,图5是本申请另一实施例提供的一种脚本转换方法的示意流程图。基于该脚本转换方法可以开发一个脚本管理平台,该脚本管理平台用于管理历史脚本,比如创建、转换或删除等。如图5所示,该脚本转换方法包括步骤S201~S207。
S201、检测是否有触发预设转换控件的点击操作,所述预设转换控件用于触发生成脚本转换指令。
在本实施例中,所述脚本管理平台设有脚本管理界面,所述管理界面上包括预设转换控件,所述预设转换控件用于触发生成脚本转换指令。如果用户需要将历史脚本进行转换以创建新的脚本,比如将SQL脚本转成HQL脚本以完成HQL脚本的快速创建,该用户可以在所述脚本搜索框中输入脚本标识,并点击所述预设转换控件,由此即可检测到有触发预设转换控件的点击操作;若若检测到触发所述预设转换控件的点击操作,执行步骤S202。
S202、根据所述点击操作显示预设输入框以提示用于输入脚本标识和目标脚本类型。
在本实施例中,若检测到触发所述预设转换控件的点击操作,根据所述点击操作显示预设输入框,所述预设输入框以提示用户输入脚本标识和目标脚本类型。具体地,在所述预设输入框中显示提示文字信息以提示用户输入脚本标识和目标脚本类型。
S203、获取所述用户在所述预设输入框中输入的脚本标识和目标脚本类型。
在本实施例中,获取用户根据所述文字提示信息在在所述预设输入框中输入的脚本标识和目标脚本类型,比如脚本标识为User002.sh,目标脚本类型为HQL。由此可以通过所述预设输入框中获取脚本标识和目标脚本类型。
S204、获取所述脚本标识对应的待转换脚本,解析所述待转换脚本以得到解析结果,所述解析结果包括脚本参数信息。
具体地,根据所述脚本转换指令中的脚本标识,搜索所述脚本标识对应的待转换脚本,解析所述待转换脚本的具体内容以获得解析结果,所述解析结果包括脚本参数信息,所述脚本参数信息比如为:脚本语言或脚本语句行数等。
S205、根据所述脚本参数信息确定脚本转换规则,所述脚本转换规则包括第一预设转换规则和第二预设转换规则。
具体地,根据所述脚本参数信息中的脚本语句行数确定脚本转换规则,具体根据脚本语句行数选择第一预设转换规则或第二预设转换规则作为所述脚本转换规则。其中所述第一预设转换规则和第二预设转换规则为采用不同的方式进行转换的规则。
S206、根据确定的第一预设转换规则或第二预设转换规则将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句。
在一实施例中,若是根据确定的第一预设转换规则将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句的,则步骤S206包括:子步骤S206a至S206d。如图6所示,S206a、获取预设关键字记录表,所述预设关键字记录表记录有所述待转换脚本的语法关键字与所述目标脚本类型的语法关键字的映射关系;S206b、判断所述脚本语句行数是否大于第二预设行数;S206c、若所述脚本语句行数大于所述第二预设行数,根据所述预设关键字记录表逐行遍历所述待转换脚本的脚本语句,将所述待转换脚本的脚本语句中的语法关键字替换为所述目标脚本类型的语法关键字;S206d、调用预设调试脚本逐行调试经过所述语法关键字替换的所述待转换脚本中的脚本语句。
具体地,根据SQL脚本和HQL脚本的采用语言不同点,预先设置一个预设关键字记录表,根据所述预设关键字记录表遍历所述待转换脚本的每一行脚本语句。当所述待转换脚本的脚本语句行数大于所述第二预设行数时,根据所述预设关键字记录表逐行遍历所述待转换脚本的脚本语句,将所述待转换脚本的脚本语句中的语法关键字替换为所述目标脚本类型的语法关键字;并调用预设调试,通过所述预设调试脚本自动逐行调试经过所述语法关键字替换的所述待转换脚本中的脚本语句,并将错误替换进行修正,由此提高了脚本转换的准确地以及转换效率。
在一实施例中,若是根据确定的第二预设转换规则将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句,则步骤S206包括:子步骤S2061和S2062。如图7所示,S2061、将所述待转换脚本的脚本语句转换成抽象语法树;S2062、调用预设解析器,通过所述预设解析器解析所述抽象语法树以生成目标脚本语句。
具体地,对所述待转换脚本的脚本语句进行解析,将所述待转换脚本的脚本语句转换成相应的抽象语法树。调用预设解析器,所述预设解析器为针对所述目标脚本类型而开发的解析器,用于解析所述抽象语法树。由此可以通过所述预设解析器解析所述抽象语法树以生成目标脚本语句,加快了脚本转换的速度,提高了脚本的转换效率。
S207、根据转换后的目标脚本语句生成目标脚本。
具体地,根据转换的目标脚本语句生成目标脚本,并将生成目标脚本保存至预设目录中,以便管理人员进行调试使用。由此完成所述待转换脚本的转换,同时方便了新脚本的创建,进而提高了工作效率。
上述实施例的方法通过预设转换控件便于用户实现脚本转换的操作,同时还根据脚本参数选择不同的预设转换规则实现脚本语句的转换,由此可快速自动地完成脚本的转换,进而提高了脚本的转换效率以及用户的体验度。
图8是本申请实施例提供的一种脚本转换装置的示意性框图。如图8所示,对应于以上脚本转换方法,本申请还提供一种脚本转换装置。该脚本转换装置包括用于执行上述脚本转换的单元,该装置可以被配置于服务器或终端中。如图8所示,该脚本转换装置400包括:标识获取单元401、获取解析单元402、规则确定单元403、语句转换单元404和脚本生成单元405。
标识获取单元401,用于获取用户输入的脚本标识和目标脚本类型。
获取解析单元402,用于获取所述脚本标识对应的待转换脚本,解析所述待转换脚本以得到解析结果,所述解析结果包括脚本参数信息。
规则确定单元403,用于根据所述脚本参数信息确定脚本转换规则。
其中,规则确定单元403包括:第一判断子单元4031、第一选择子单元4032和第二选择子单元4033。其中,第一判断子单元4031,用于判断所述脚本语句行数是否大于第一预设行数;第一选择子单元4032,用于若所述脚本语句行数不大于所述第一预设行数,选择第一预设转换规则作为所述脚本转换规则;第二选择子单元4033,用于若所述脚本语句行数大于所述第一预设行数,选择第二预设转换规则作为所述脚本转换规则。
语句转换单元404,用于根据确定的脚本转换规则将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句。
其中,语句转换单元404包括:记录获取子单元4041和语句替换子单元4042。具体地,记录获取子单元4041,用于获取预设关键字记录表,其中所述预设关键字记录表记录有所述待转换脚本的语法关键字与所述目标脚本类型的语法关键字的映射关系;语句替换子单元4042,用于根据所述预设关键字记录表遍历所述待转换脚本的脚本语句,将所述待转换脚本的脚本语句中的语法关键字替换为所述目标脚本类型的语法关键字。
其中,语句转换单元404还包括:抽象转换子单元4043和脚本转换子单元4044。具体地,抽象转换子单元4043,用于将所述待转换脚本的脚本语句转换成抽象语法树;脚本转换子单元4044,用于基于所述抽象语法树,将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句。
脚本生成单元405,用于根据转换后的目标脚本语句生成目标脚本。
图9是本申请另一实施例提供的一种脚本转换装置的示意性框图。如图9所示,对应于以上脚本转换方法,本申请还提供一种脚本转换装置。该脚本转换装置包括用于执行上述脚本转换的单元,该装置可以被配置于服务器或终端中。如图9所示,该脚本转换装置500包括:操作检测单元501、触发显示单元502、标识获取单元503、获取解析单元504、规则确定单元505、语句转换单元506和脚本生成单元507。
操作检测单元501,用于检测是否有触发预设转换控件的点击操作,所述预设转换控件用于触发生成脚本转换指令。
触发显示单元502,用于若检测到触发所述预设转换控件的点击操作,根据所述点击操作显示预设输入框以提示用于输入脚本标识和目标脚本类型。
标识获取单元503,用于获取所述用户在所述预设输入框中输入的脚本标识和目标脚本类型,根据所述脚本标识和目标脚本类型生成脚本转换指令。
获取解析单元504,用于获取所述脚本标识对应的待转换脚本,解析所述待转换脚本以得到解析结果,所述解析结果包括脚本参数信息。
规则确定单元505,用于根据所述脚本参数信息确定脚本转换规则,所述脚本转换规则包括第一预设转换规则和第二预设转换规则。
语句转换单元506,用于根据确定的第一预设转换规则或第二预设转换规则将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句。
其中,语句转换单元506,包括:记录获取子单元5061、第二判断子单元5062、语句替换子单元5063和脚本调用子单元5064。具体地,记录获取子单元5061,用于获取预设关键字记录表,所述预设关键字记录表记录有所述待转换脚本的语法关键字与所述目标脚本类型的语法关键字的映射关系;第二判断子单元5062,用于判断所述脚本语句行数是否大于第二预设行数;语句替换子单元5063,用于若所述脚本语句行数大于所述第二预设行数,根据所述预设关键字记录表逐行遍历所述待转换脚本的脚本语句,将所述待转换脚本的脚本语句中的语法关键字替换为所述目标脚本类型的语法关键字;脚本调用子单元5064,用于调用预设调试脚本逐行调试经过所述语法关键字替换的所述待转换脚本中的脚本语句。
其中,所述语句转换单元506,还具体用于:将所述待转换脚本的脚本语句转换成抽象语法树;调用预设解析器,通过所述预设解析器解析所述抽象语法树以生成目标脚本语句。
脚本生成单元507,用于根据转换后的目标脚本语句生成目标脚本。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的脚本转换装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
上述装置可以实现为一种计算机程序的形式,计算机程序可以在如图10所示的计算机设备上运行。
请参阅图10,图10是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备700设备可以是终端或服务器。
参照图10,该计算机设备700包括通过系统总线710连接的处理器720、存储器和网络接口750,其中,存储器可以包括非易失性存储介质730和内存储器740。
该非易失性存储介质730可存储操作系统731和计算机程序732。该计算机程序732被执行时,可使得处理器720执行任意一种脚本转换方法。
该处理器720用于提供计算和控制能力,支撑整个计算机设备700的运行。
该内存储器740为非易失性存储介质730中的计算机程序732的运行提供环境,该计算机程序732被处理器720执行时,可使得处理器720执行任意一种脚本转换方法。
该网络接口750用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备700的限定,具体的计算机设备700可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,所述处理器720用于运行存储在存储器中的程序代码,以实现如下步骤:
获取用户输入的脚本标识和目标脚本类型;获取所述脚本标识对应的待转换脚本,解析所述待转换脚本以得到解析结果,所述解析结果包括脚本参数信息;根据所述脚本参数信息确定脚本转换规则,所述脚本转换规则包括第一预设转换规则和第二预设转换规则;根据确定的第一预设转换规则或第二预设转换规则将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句;根据转换后的目标脚本语句生成目标脚本。
在一实施例中,所述脚本参数信息包括脚本语句行数,所述处理器720用于运行存储在存储器中的程序代码实现所述根据所述脚本参数信息确定脚本转换规则时,具体实现如下步骤:
判断所述脚本语句行数是否大于第一预设行数;若所述脚本语句行数不大于所述第一预设行数,选择所述第一预设转换规则作为所述脚本转换规则;若所述脚本语句行数大于所述第一预设行数,选择所述第二预设转换规则作为所述脚本转换规则。
在一实施例中,所述处理器720用于运行存储在存储器中的程序代码实现所述根据确定的第一预设转换规则将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句时,具体实现如下步骤:
获取预设关键字记录表,所述预设关键字记录表记录有所述待转换脚本的语法关键字与所述目标脚本类型的语法关键字的映射关系;根据所述预设关键字记录表遍历所述待转换脚本的脚本语句,将所述待转换脚本的脚本语句中的语法关键字替换为所述目标脚本类型的语法关键字。
在一实施例中,所述处理器720用于运行存储在存储器中的程序代码实现所述根据所述预设关键字记录表遍历所述待转换脚本的脚本语句,将所述待转换脚本的脚本语句中的语法关键字替换为所述目标脚本类型的语法关键字时,具体实现如下步骤:
判断所述脚本语句行数是否大于第二预设行数;若所述脚本语句行数大于所述第二预设行数,根据所述预设关键字记录表逐行遍历所述待转换脚本的脚本语句,将所述待转换脚本的脚本语句中的语法关键字替换为所述目标脚本类型的语法关键字;以及调用预设调试脚本逐行调试经过所述语法关键字替换的所述待转换脚本中的脚本语句。
在一实施例中,所述处理器720用于运行存储在存储器中的程序代码实现所述根据确定的第二预设转换规则将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句时,具体实现如下步骤:
将所述待转换脚本的脚本语句转换成抽象语法树;基于所述抽象语法树,将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句。
在一实施例中,所述处理器720用于运行存储在存储器中的程序代码实现所述基于所述抽象语法树,将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句时,具体实现如下步骤:
调用预设解析器,通过所述预设解析器解析所述抽象语法树以生成目标脚本语句。
在一实施例中,所述处理器720用于运行存储在存储器中的程序代码实现所述获取用户输入的脚本标识和目标脚本类型之前,还实现如下步骤:
检测是否有触发预设转换控件的点击操作,所述预设转换控件用于触发生成脚本转换指令;若检测到触发所述预设转换控件的点击操作,根据所述点击操作显示预设输入框以提示用户输入脚本标识和目标脚本类型;获取所述用户在所述预设输入框中输入的脚本标识和目标脚本类型。
应当理解,在本申请实施例中,处理器720可以是中央处理单元(CentralProcessingUnit,CPU),该处理器720还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域技术人员可以理解,图10中示出的计算机设备700结构并不构成对计算机设备700的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本领域普通技术人员可以理解的是实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。如本发明实施例中,该计算机程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程步骤。
该计算机可读存储介质可以是磁碟、光盘、U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的脚本转换装置和方法,可以通过其它的方式实现。例如,以上所描述的脚本转换装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的单元可以根据实际需要进行合并、划分和删减。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (7)

1.一种脚本转换方法,其特征在于,包括:
获取用户输入的脚本标识和目标脚本类型;
获取所述脚本标识对应的待转换脚本,解析所述待转换脚本以得到解析结果,所述解析结果包括脚本参数信息,其中,所述脚本参数信息包括脚本语句行数;
根据所述脚本参数信息确定脚本转换规则;
判断所述脚本语句行数是否大于第一预设行数;
若所述脚本语句行数不大于所述第一预设行数,选择第一预设转换规则作为所述脚本转换规则;
若所述脚本语句行数大于所述第一预设行数,选择第二预设转换规则作为所述脚本转换规则;
根据确定的脚本转换规则将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句;
若所述脚本转换规则为第一预设转换规则,获取预设关键字记录表,所述预设关键字记录表记录有所述待转换脚本的语法关键字与所述目标脚本类型的语法关键字的映射关系;
根据所述预设关键字记录表遍历所述待转换脚本的脚本语句,将所述待转换脚本的脚本语句中的语法关键字替换为所述目标脚本类型的语法关键字;
若所述脚本转换规则为第二预设转换规则,将所述待转换脚本的脚本语句转换成抽象语法树;
基于所述抽象语法树,将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句;
根据转换后的目标脚本语句生成目标脚本。
2.根据权利要求1所述的脚本转换方法,其特征在于,所述根据所述预设关键字记录表遍历所述待转换脚本的脚本语句,将所述待转换脚本的脚本语句中的语法关键字替换为所述目标脚本类型的语法关键字,包括:
判断所述脚本语句行数是否大于第二预设行数;
若所述脚本语句行数大于所述第二预设行数,根据所述预设关键字记录表逐行遍历所述待转换脚本的脚本语句,将所述待转换脚本的脚本语句中的语法关键字替换为所述目标脚本类型的语法关键字;以及
调用预设调试脚本逐行调试经过所述语法关键字替换的所述待转换脚本中的脚本语句。
3.根据权利要求1所述的脚本转换方法,其特征在于,所述基于所述抽象语法树,将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句,包括:
调用预设解析器,通过所述预设解析器解析所述抽象语法树以生成目标脚本语句。
4.根据权利要求1所述的脚本转换方法,其特征在于,所述获取用户输入的脚本标识和目标脚本类型之前,还包括:
检测是否有触发预设转换控件的点击操作,所述预设转换控件用于触发生成脚本转换指令;
若检测到触发所述预设转换控件的点击操作,根据所述点击操作显示预设输入框以提示用户输入脚本标识和目标脚本类型;
所述获取用户输入的脚本标识和目标脚本类型,包括:获取所述用户在所述预设输入框中输入的脚本标识和目标脚本类型。
5.一种脚本转换装置,其特征在于,包括:
标识获取单元,用于获取用户输入的脚本标识和目标脚本类型;
获取解析单元,用于获取所述脚本标识对应的待转换脚本,解析所述待转换脚本以得到解析结果,所述解析结果包括脚本参数信息;
规则确定单元,用于根据所述脚本参数信息确定脚本转换规则,所述脚本转换规则包括第一预设转换规则和第二预设转换规则;
第一判断子单元,用于判断脚本语句行数是否大于第一预设行数;
第一选择子单元,用于若所述脚本语句行数不大于所述第一预设行数,选择第一预设转换规则作为所述脚本转换规则;
第二选择子单元,用于若所述脚本语句行数大于所述第一预设行数,选择第二预设转换规则作为所述脚本转换规则;
语句转换单元,用于根据确定的第一预设转换规则或第二预设转换规则将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句;
记录获取子单元,用于若所述脚本转换规则为第一预设转换规则,获取预设关键字记录表,所述预设关键字记录表记录有所述待转换脚本的语法关键字与所述目标脚本类型的语法关键字的映射关系;
语句替换子单元,用于根据所述预设关键字记录表遍历所述待转换脚本的脚本语句,将所述待转换脚本的脚本语句中的语法关键字替换为所述目标脚本类型的语法关键字;
抽象转换子单元,用于若所述脚本转换规则为第二预设转换规则,将所述待转换脚本的脚本语句转换成抽象语法树;
脚本转换子单元,用于基于所述抽象语法树,将所述待转换脚本的脚本语句转换成所述目标脚本类型对应的目标脚本语句;
脚本生成单元,用于根据转换后的目标脚本语句生成目标脚本。
6.一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至4中任意一项所述方法的步骤。
7.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1至4任意一项所述方法的步骤。
CN201810950357.4A 2018-08-20 2018-08-20 脚本转换方法、装置、计算机设备及存储介质 Active CN109376166B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810950357.4A CN109376166B (zh) 2018-08-20 2018-08-20 脚本转换方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810950357.4A CN109376166B (zh) 2018-08-20 2018-08-20 脚本转换方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN109376166A CN109376166A (zh) 2019-02-22
CN109376166B true CN109376166B (zh) 2023-07-04

Family

ID=65404037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810950357.4A Active CN109376166B (zh) 2018-08-20 2018-08-20 脚本转换方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN109376166B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110060667B (zh) * 2019-03-15 2023-05-30 平安科技(深圳)有限公司 语音信息的批量处理方法、装置、计算机设备及存储介质
CN110147411A (zh) * 2019-05-20 2019-08-20 平安科技(深圳)有限公司 数据同步方法、装置、计算机设备及存储介质
CN110262787B (zh) * 2019-06-21 2022-12-13 北京搜房科技发展有限公司 语句替换方法、装置和电子设备
CN110275706A (zh) * 2019-07-01 2019-09-24 拉扎斯网络科技(上海)有限公司 程序发布和加载方法、装置、计算机系统及可读存储介质
CN111078637A (zh) * 2019-10-12 2020-04-28 中国平安财产保险股份有限公司 脚本文件上线方法、装置、计算机设备及存储介质
CN110955433B (zh) * 2019-11-27 2023-08-29 中国银行股份有限公司 一种自动化部署脚本的生成方法及装置
CN111897529B (zh) * 2020-06-08 2023-11-14 华人运通(江苏)技术有限公司 前端组件转换方法、装置、设备及可读存储介质
CN111813396B (zh) * 2020-07-14 2021-04-20 北京自如信息科技有限公司 一种脚本的编辑方法、装置、计算机设备及可读存储介质
CN112346730B (zh) * 2020-11-04 2021-08-27 星环信息科技(上海)股份有限公司 一种中间表示的生成方法、计算机设备及存储介质
CN112671734B (zh) * 2020-12-16 2023-06-09 中国平安人寿保险股份有限公司 面向多数据源的报文处理方法及其相关设备
CN113127124A (zh) * 2021-04-21 2021-07-16 平安付科技服务有限公司 数据库语言类型切换方法、装置、计算机设备及存储介质
CN113486104A (zh) * 2021-07-15 2021-10-08 山东齐鲁数通科技有限公司 数据库存储过程转换方法、装置、终端设备及存储介质
CN115827677A (zh) * 2023-01-10 2023-03-21 北京沐融信息科技股份有限公司 一种数据库操作的方法、装置及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105868204A (zh) * 2015-01-21 2016-08-17 中国移动(深圳)有限公司 一种转换Oracle脚本语言SQL的方法及装置
CN107193807A (zh) * 2017-05-12 2017-09-22 北京百度网讯科技有限公司 基于人工智能的语言转换处理方法、装置及终端
CN107908679A (zh) * 2017-10-26 2018-04-13 平安科技(深圳)有限公司 脚本语句转换方法、装置及计算机可读存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11086854B2 (en) * 2014-05-30 2021-08-10 Hexagon Technology Center Gmbh Database interface method and system
US10970277B2 (en) * 2016-01-20 2021-04-06 Oracle International Corporation System and method for dynamic conversion of database accessing scripts during runtime in a mainframe rehosting platform

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105868204A (zh) * 2015-01-21 2016-08-17 中国移动(深圳)有限公司 一种转换Oracle脚本语言SQL的方法及装置
CN107193807A (zh) * 2017-05-12 2017-09-22 北京百度网讯科技有限公司 基于人工智能的语言转换处理方法、装置及终端
CN107908679A (zh) * 2017-10-26 2018-04-13 平安科技(深圳)有限公司 脚本语句转换方法、装置及计算机可读存储介质

Also Published As

Publication number Publication date
CN109376166A (zh) 2019-02-22

Similar Documents

Publication Publication Date Title
CN109376166B (zh) 脚本转换方法、装置、计算机设备及存储介质
US10990511B2 (en) Apparatus and application interface traversing method
US8904352B2 (en) Systems and methods for processing source code during debugging operations
US20030131342A1 (en) Debugger with activity alert
CN110704297B (zh) 代码评审方法、装置、计算机设备及存储介质
CN111367595B (zh) 数据处理方法、程序运行方法、装置及处理设备
CN110502227B (zh) 代码补全的方法及装置、存储介质、电子设备
US9037552B2 (en) Methods for analyzing a database and devices thereof
US10613969B2 (en) Code coverage module with testing function identifier
CN113672628A (zh) 数据血缘分析方法、终端设备及介质
US9706005B2 (en) Providing automatable units for infrastructure support
CN107330031B (zh) 一种数据存储的方法、装置及电子设备
KR20180129623A (ko) 연관된 다중 파일 정적 분석 장치
CN112540925A (zh) 新特性兼容性检测系统及方法、电子设备及可读存储介质
CN108959454B (zh) 一种提示子句指定方法、装置、设备及存储介质
CN112835779A (zh) 测试用例确定方法、装置、计算机设备
CN113051262B (zh) 一种数据质检方法、装置、设备及存储介质
CN115454702A (zh) 日志故障分析方法、装置、存储介质及电子设备
US7844627B2 (en) Program analysis method and apparatus
US20190018663A1 (en) Code lineage tool
US20210349808A1 (en) Source quality check service
CN114691197A (zh) 代码分析方法、装置、电子设备和存储介质
CN111159162B (zh) 数据库配置方法及设备
JP6336919B2 (ja) ソースコードレビュー方法及びそのシステム
CN114328572A (zh) 基于sql解析器的数据查询方法、装置、系统及介质

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