一种脚本执行和更新的方法、装置、设备和存储介质与流程

文档序号:18667562发布日期:2019-09-13 20:23阅读:211来源:国知局
一种脚本执行和更新的方法、装置、设备和存储介质与流程

本发明实施例涉及数据库处理领域,尤其涉及一种脚本执行和更新的方法、装置、设备和存储介质。



背景技术:

数据库服务器在开发过程中,为了保证数据库功能的正常实现,需要为其提供的系统视图、系统包等数据库功能对象创建对应的数据库脚本文件,以执行相应的数据库处理,提高数据访问的效率。

目前数据库中的脚本文件都是以可见可编辑的形式存储在磁盘中,执行数据库脚本时由数据库服务端内部以最高权限在磁盘中查找相应的结构化查询语言(structuredquerylanguage,sql)脚本,也就是在客户端直接输入各个数据库脚本的执行过程;例如utl_mail包的脚本文件为utl_mail.sql。此时数据库脚本的执行权限是系统级的,用户可以在客户端随意修改,如果脚本文件被用户恶意编辑,客户端在执行时无法检查出已被篡改的脚本内容,会导致数据库系统被恶意破坏。



技术实现要素:

本发明实施例提供了一种脚本执行和更新的方法、装置、设备和存储介质,避免数据库脚本被恶意篡改,提高数据库脚本执行的安全性。

第一方面,本发明实施例提供了一种脚本执行的方法,该方法包括:

根据待执行数据库脚本转换后的源文件标识,获取所述源文件中的指定转换函数;

调用所述源文件中的指定转换函数对所述源文件逆转换,并执行逆转换得到的待执行数据库脚本的内容。

第二方面,本发明实施例提供了一种脚本更新的方法,该方法包括:

根据待更新数据库脚本转换后的源文件标识,获取所述源文件中的指定转换函数;

调用所述源文件中的指定转换函数对所述源文件逆转换,并在指定文件中写入逆转换得到的待更新数据库脚本的内容。

第三方面,本发明实施例提供了一种脚本执行的装置,该装置包括:

第一函数获取模块,用于根据待执行数据库脚本转换后的源文件标识,获取所述源文件中的指定转换函数;

脚本执行模块,用于调用所述源文件中的指定转换函数对所述源文件逆转换,并执行逆转换得到的待执行数据库脚本的内容。

第四方面,本发明实施例提供了一种脚本更新的装置,该装置包括:

第二函数获取模块,用于根据待更新数据库脚本转换后的源文件标识,获取所述源文件中的指定转换函数;

更新脚本写入模块,用于调用所述源文件中的指定转换函数对所述源文件逆转换,并在指定文件中写入逆转换得到的待更新数据库脚本的内容。

第五方面,本发明实施例提供了一种设备,该设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现第一方面中所述的脚本执行的方法,或者,实现第二方面中所述的脚本更新的方法。

第六方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中所述的脚本执行的方法,或者,实现第二方面中所述的脚本更新的方法。

本发明实施例提供了一种脚本执行和更新的方法、装置、设备和存储介质,预先将数据库中各个数据对象的数据库脚本对应转换为源文件格式进行存储,在需要执行或者更新某一数据库脚本时,首先根据待执行数据库脚本转换后的源文件标识,获取源文件中在脚本转换时采用的指定转换函数,进而调用该指定转换函数对源文件进行逆转换,执行逆转换得到的数据库脚本的内容,或者在指定文件中写入逆转换得到的数据库脚本的内容,在脚本执行时,无需将数据库脚本的内容向用户显示,避免数据库脚本被恶意篡改,提高数据库脚本执行的安全性。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1a为本发明实施例一提供的一种脚本执行的方法的流程图;

图1b为本发明实施例一提供的脚本执行过程的原理示意图;

图2a为本发明实施例二提供的一种脚本执行的方法的流程图;

图2b为本发明实施例二提供的脚本执行过程的原理示意图;

图3为本发明实施例三提供的一种脚本更新的方法的流程图;

图4为本发明实施例四提供的一种脚本执行的装置的结构示意图;

图5为本发明实施例五提供的一种脚本更新的装置的结构示意图;

图6为本发明实施例六提供的一种设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

实施例一

图1a为本发明实施例一提供的一种脚本执行的方法的流程图,本实施例可适用于数据库服务端对任一数据对象的脚本内容进行执行情况中。本实施例提供的一种脚本执行的方法可以由本发明实施例提供的脚本执行的装置来执行,该装置可以通过软件和/或硬件的方式来实现,并集成在执行本方法的设备中,在本实施例中执行本方法的设备可以是数据库应用对应的服务端。

具体的,参考图1a,该方法可以包括如下步骤:

s110,根据待执行数据库脚本转换后的源文件标识,获取源文件中的指定转换函数。

具体的,由于目前的数据库脚本在执行时针对用户可见,此时现有的数据库脚本的执行过程中存在某些用户对待执行的数据库脚本进行恶意篡改的情况,因此为了避免数据库脚本的恶意篡改,本实施例无论在增加数据库脚本还是修改数据库脚本时,均会对数据库中存在的全部数据库脚本预先转换为对应的源文件,也就是在数据库系统中以源工程文件的形式存储各个数据库脚本,此时源文件作为数据库系统内部的代码执行文件,经过数据库工程编译后固化到了可执行程序中,进而对用户不可见,也就不支持用户进行修改,避免用户恶意篡改数据库脚本的内容。

其中,指定转换函数是指数据库系统在将数据库脚本转换为源文件时,为了保证脚本转换的准确率和成功率,所指定的需要参与数据库脚本转换过程的各个功能函数,本实施例中的指定转换函数可以包括脚本长度函数和脚本内容函数;其中,脚本长度函数用于获取转换为源文件的数据库脚本的长度,将数据库脚本长度作为整型值返回;脚本内容函数用于获取转换为源文件的数据库脚本的具体内容,也就是转换前的sql脚本代码。此时,本实施例中将数据库脚本转换为源文件是指通过采用脚本长度函数和脚本内容函数将数据库脚本的具体内容,按照符合源文件对应的c语言格式写入到预先生成的空白源文件中,以便后续通过调用源文件中的脚本长度函数和脚本内容函数,能够获取转换前的数据库脚本内容。

可选的,如果用户通过某一触发操作请求数据库系统执行某一数据库脚本时,首先可以根据待执行数据库脚本的标识确定待执行数据库脚本转换后的源文件标识,本实施例在对数据库脚本转换时可以通过脚本标识和源文件标识指示数据库脚本与源文件之间的对应转换关系;示例性的,本实施例中的标识可以是文件名称,也就是在数据库脚本转换时仅改变文件名称的后缀,如名称为xx.sql的数据库脚本对应转换后的源文件名称为:xx.c。进一步的,在确定待执行数据库脚本转换后的源文件标识后,根据该源文件标识在数据库内部系统中查找出待执行数据库脚本转换后的源文件的转换结构内存,并获取该源文件中的指定转换函数,以便后续根据该指定转换函数获取转换前的数据库脚本。

s120,调用源文件中的指定转换函数对源文件逆转换,并执行逆转换得到的待执行数据库脚本的内容。

具体的,在获取到源文件中的指定转换函数后,直接调用该源文件中的指定转换函数,执行指定转换函数下包含的函数体,此时指定转换函数具备输出源文件对应转换前的数据库脚本的功能,以便对该源文件进行逆转换,通过该指定转换函数直接在预先设定的数据缓存区中输出该源文件对应转换前的待执行数据库脚本的内容,并通过数据库服务端执行通过逆转换得到的待执行数据库脚本的内容,此时在执行数据库脚本时,无需将数据库脚本显示给用户,且源文件不对用户可见,避免数据库脚本在执行时被恶意篡改。

示例性的,本实施例中调用源文件中的指定转换函数对源文件逆转换,具体可以包括:调用源文件中的脚本长度函数,并根据待执行数据库脚本的长度建立对应大小的数据缓存区;调用源文件中的脚本内容函数,在数据缓存区中缓存待执行数据库脚本的内容。

具体的,本实施例在获取到待执行数据库脚本转换后的源文件中包含的指定转换函数,也就是获取到源文件中的脚本长度函数和脚本内容函数时,如图1b所示,首先调用脚本长度函数,返回本次待执行数据库脚本的长度,并根据待执行数据库脚本的长度建立对应大小的数据缓存区,此时由于数据缓存区需要在缓存数据库脚本的基础上,多出一个字节存放字符串结尾标识,因此该数据缓存区的大小大于或者等于数据库脚本的长度和一个字节的和;同时调用源文件中的脚本内容函数,通过执行脚本内容函数对源文件进行逆转换,得到转换前的待执行数据库脚本的内容,并在数据缓存区中缓存逆转换得到的待执行数据库脚本的内容,以便后续数据库服务端直接执行数据缓存区中的全部数据库脚本,也就是本实施例中的待执行数据库脚本。

本实施例提供的技术方案,预先将数据库中各个数据对象的数据库脚本对应转换为源文件格式进行存储,在需要执行某一数据库脚本时,首先根据待执行数据库脚本转换后的源文件标识,获取源文件中在脚本转换时采用的指定转换函数,进而调用该指定转换函数对源文件进行逆转换,执行逆转换得到的数据库脚本的内容,无需将数据库脚本的内容向用户显示,避免数据库脚本被恶意篡改,提高数据库脚本执行的安全性。

实施例二

图2a为本发明实施例二提供的一种脚本执行的方法的流程图,图2b为本发明实施例二提供的脚本执行过程的原理示意图。本实施例是在上述实施例的基础上进行优化。可选的,为了提高源文件中指定转换函数的查找速度,本实施例会根据预先注册有转换后的源文件标识和指定转换函数的全局数组建立全局哈希表,此时可以通过该全局哈希表尽快查找源文件中的指定转换函数,本实施例中主要对指定转换函数的获取过程和数据库脚本的转换过程进行详细的解释说明。

可选的,如图2a所示,本实施例具体可以包括如下步骤:

s210,根据待转换数据库脚本的标识,在指定目录下生成对应的源文件。

具体的,在执行数据库脚本之前,本实施例首先会对数据库系统中的全部数据库脚本进行转换,此时如果数据库系统中存在新的未转换的数据库脚本,则将其作为本实施例中的待转换数据库脚本,根据待转换数据库脚本的标识,在指定目录下生成对应的源文件,指定目录为转换后源文件在数据库系统中的路径,此时该源文件为空白文件,后续向其中写入对应的脚本长度函数和脚本内容函数,以对数据库脚本进行转换。

示例性的,如果待转换数据库脚本的标识为数据库脚本名称(脚本后缀名为.sql,例如utl_mail的脚本文件为utl_mail.sql),则预先生成工程语言文件的名称(仅将数据库脚本名称的后缀变为.c,名称不变),也就是源文件的名称,并在指定目录下新创建该名称对应的源文件。

s220,在源文件中硬编码写入待转换数据库脚本的脚本长度函数。

具体的,在指定目录下生成对应的源文件之后,首先读取出待转换的数据库脚本,并获取待转换数据库脚本的长度,进而采用工程文件格式的c语言在针对脚本转换而建立的数据缓存区中拼写对应的脚本长度函数,并将拼写完成的脚本长度函数对应写入创建的源文件中。示例性的,本实施例中脚本长度函数为sqlsc_get_xx_length时,硬编码写入源文件中的sqlsc_get_xx_length()具体如下:

此时,sqlsc_get_xx_length()用于将指定目录下的源文件对应转换前的数据库脚本的长度作为整型值返回。

s230,逐行解析待转换数据库脚本的内容,并根据解析后的脚本内容在源文件中硬编码写入待转换数据库脚本的脚本内容函数。

可选的,在获取待转换数据库脚本的长度时,首先会读取待转换数据库脚本的内容到缓存src中,并将脚本内容函数的函数名,以及对脚本内容函数的函数声明、参数类型声明、变量定义、偏移变量以及断言数据缓存长度大于脚本内容长度等信息,采用符合c语言的工程文件格式,硬编码写入到对应的数据缓存区中,并通过操作系统函数fwrite将数据缓存区中的内容写入到新创建的源文件中;进而逐行解析预先读取的待转换数据库脚本的内容,获取脚本内容函数对应的函数体;该函数体部分为一个迭代过程,不断将待转换数据库脚本的内容写入到脚本内容函数的输出参数指定的数据缓存区中,也就是将待转换数据库脚本的内容硬编码写入到预先拷贝函数memcpy(void*dest,constvoid*source,intoffset)中,该拷贝函数是指把source指向的区域向dest指向的区域复制offset个字符。此时该函数体具体的迭代过程如下:通过操作系统函数fopen和fread逐行读取缓存src中待转换数据库脚本的内容,直到识别出待转换数据库脚本在缓存src中的换行符,则获取该行的脚本内容和换行符,并对在缓存src中读取的脚本内容中出现的双引号和斜杠进行转义处理,同时在该行脚本内容末尾加上回车换行的指示符\r\n\,进而将该行脚本内容作为拷贝函数memcpy的输出参数与回车换行符一起写入到临时建立的数据缓存区中,通过操作系统函数fwrite将数据缓存区中的内容再次写入源文件中,并逐行迭代重读执行上述步骤,直至将待转换数据库脚本的内容全部写入到源文件中。

此外,为了保证脚本内容的拷贝效率,本实施例可以预先设定一个长度阈值,根据该长度阈值对待转换数据库脚本的内容进行分段拷贝。具体的额,在每次迭代时,可以首先根据sqlsc_get_xx_length函数获取每一行内容的长度,再将每一行长度累加获取到待转换数据库脚本的内容长度;当前累加的脚本内容长度大于或等于该长度阈值时,将该段脚本内容的实际长度作为拷贝函数memcpy的拷贝参数offset,并将该段脚本内容写入到数据缓存区中之后,再通过操作系统函数fwrite把数据缓存区中的脚本内容写到源文件中;然后offset继续指向待执行数据库脚本中下一位置,重复执行上述过程,通过分段每次将对应的脚本内容、偏移写入到源文件中;如果最后一次迭代过程中,获取的脚本偏移长度没超过该长度阈值,但是缓存src中待转换数据库脚本内容已经读取完毕,则将该段脚本内容的实际长度作为拷贝函数memcpy的拷贝参数offset,并将该段脚本内容写入到数据缓存区中之后,再通过操作系统函数fwrite把数据缓存区中的脚本内容写到源文件中,依次循环,直至将待转换数据库脚本的完整内容按工程语言输出到数据缓存区中,输出完毕后,数据缓存区结尾设置为end,继续对数据缓存区设置的结尾end硬编码,进而把脚本内容函数的return语句和结尾符进行硬编码,从而在源文件中硬编码写入待转换数据库脚本的脚本内容函数。

示例性的,本实施例中脚本内容函数为sqlsc_get_xx_str时,硬编码写入源文件中的sqlsc_get_xx_str()具体如下:

此时,m1和m2表示分段对应的脚本内容的实际长度,offset指示待执行数据库脚本中下一拷贝位置,该脚本内容函数sqlsc_get_xx_str()能够获取源文件对应转换前的数据库脚本的内容。

s240,在数据库服务端启动时,根据预先注册的全局数组中的源文件标识和源文件中的指定转换函数,构建全局哈希表。

具体的,在数据库脚本转换为源文件后,为了对数据库脚本转换的源文件进行快速查询统计,本实施例可以创建一个全局数组,在数据库系统中新增加源文件后,用户可以将新增加的源文件的个数和文件标识(例如,名称)手动注册到该全局数组中,也就是将注册的数据库脚本转换后的源文件标识(例如,名称)、以及源文件中的脚本长度函数和脚本内容函数对应登记在该全局数组中。如果通过数据库服务端执行某一数据库脚本时,该数据库服务端会被触发开启,此时根据预先注册的全局数组中的源文件标识和源文件中的指定转换函数,构建一个全局哈希表,该全局哈希表中将数据库脚本转换后的源文件标识作为关键码值,以便根据源文件标识快速查找源文件的存储结构。

此外,在数据库服务端执行完数据库脚本,并关闭退出数据库服务端时,可以将构建的全局哈希表释放销毁,降低服务端内存的占用。

s250,根据待执行数据库脚本转换后的源文件标识,在预先构建的全局哈希表中查找源文件转换结构内存。

可选的,在获取到待执行数据库脚本转换后的源文件标识时,首先在预先构建的全局哈希表中按照该源文件标识遍历所有源文件转换结构内存节点,查找待执行数据库脚本转换后的源文件的转换结构内存,进而直接访问对应的源文件的转换结构内存,提高查询效率。

s260,根据该转换结构内存获取源文件中的指定转换函数。

具体的,函数指针是指向本实施例中指定转换函数的指针变量,用于在源文件中查找对应的指定转换函数的地址。可选的,本实施例中的指定转换函数包括脚本长度函数和脚本内容函数,因此预先定义两个函数指针get_sql_length和get_sql_str,通过函数指针get_sql_length和get_sql_str分别在源文件转换结构内存节点上查找源文件中的脚本长度函数sqlsc_get_xx_length和脚本内容函数sqlsc_get_xx_str的地址,以便后续直接调用脚本长度函数名sqlsc_get_xx_length和脚本内容函数名sqlsc_get_xx_str,得到转换前的待执行数据库脚本的内容。

s270,调用源文件中的脚本长度函数,并根据待执行数据库脚本的长度建立对应大小的数据缓存区。

s280,调用源文件中的脚本内容函数,在数据缓存区中缓存待执行数据库脚本的内容。

本实施例提供的技术方案,预先将数据库中各个数据对象的数据库脚本对应转换为源文件格式进行存储,在需要执行某一数据库脚本时,首先根据待执行数据库脚本转换后的源文件标识,获取源文件中在脚本转换时采用的脚本长度函数和脚本内容函数,进而分别调用该脚本长度函数和脚本内容函数对源文件进行逆转换,执行逆转换得到的数据库脚本的内容,无需将数据库脚本的内容向用户显示,避免数据库脚本被恶意篡改,提高数据库脚本执行的安全性。

实施例三

图3为本发明实施例三提供的一种脚本更新的方法的流程图,本实施例可适用于用户在数据库客户端对任一数据库脚本内容进行更新的情况中。本实施例提供的一种脚本更新的方法可以由本发明实施例提供的脚本更新的装置来执行,该装置可以通过软件和/或硬件的方式来实现,并集成在执行本方法的设备中,在本实施例中执行本方法的设备可以是配置有数据库应用的客户端。

具体的,参考图3,该方法可以包括如下步骤:

s310,根据待更新数据库脚本转换后的源文件标识,获取源文件中的指定转换函数。

可选的,本实施例在对已经转换为源文件的某一数据库脚本进行修改时,此时无需触发数据库服务端,直接在客户端上修改,因此本实施例可以参照本发明实施例提供的脚本执行的方法中通过数据库服务端对源文件进行逆转换,进而在数据缓存区中缓存逆转换得到的数据库脚本的具体过程,根据预先注册的全局数组中的源文件标识和源文件中的指定转换函数,在客户端中也构建一个相应的全局哈希表,并根据待更新数据库脚本转换后的源文件标识,在该全局哈希表中查找待更新数据库脚本转换后的源文件的转换结构内存,并获取该源文件中的指定转换函数,也就是脚本长度函数和脚本内容函数。

s320,调用源文件中的指定转换函数对源文件逆转换,并在指定文件中写入逆转换得到的待更新数据库脚本的内容。

具体的,参照本发明实施例提供的脚本执行的方法中对源文件的逆转换过程,分别调用本实施例中源文件中的脚本长度函数和脚本内容函数对源文件逆转换,将逆转换得到的待更新数据库脚本的内容缓存到预先建立的数据缓存区中,并使用操作系统函数fwrite将数据缓存区中待更新数据库脚本的内容一次性写入到指定文件中;后续将该执行文件展示给开发人员,由用户进行修改,并在修改后,继续按照本发明实施例中提供的脚本执行的方法对修改后的数据库脚本重新进行转换,得到新的源文件,后续根据新的源文件执行修改后的数据库脚本的内容。此外,本实施例在指定文件中写入逆转换得到的待更新数据库脚本的内容后,为了降低工具的内存占用,还可以将工具上构建的全局哈希表释放销毁。

本实施例提供的技术方案,预先将数据库中各个数据对象的数据库脚本对应转换为源文件格式进行存储,在需要更新某一数据库脚本时,首先根据待执行数据库脚本转换后的源文件标识,获取源文件中在脚本转换时采用的指定转换函数,进而调用该指定转换函数对源文件进行逆转换,在指定文件中写入逆转换得到的数据库脚本的内容,在脚本执行时,无需将数据库脚本的内容向用户显示,避免数据库脚本被恶意篡改,提高数据库脚本执行的安全性。

实施例四

图4为本发明实施例四提供的一种脚本执行的装置的结构示意图,如图4所示,该装置可以包括:

第一函数获取模块410,用于根据待执行数据库脚本转换后的源文件标识,获取源文件中的指定转换函数;

脚本执行模块420,用于调用源文件中的指定转换函数对源文件逆转换,并执行逆转换得到的待执行数据库脚本的内容。

本实施例提供的技术方案,预先将数据库中各个数据对象的数据库脚本对应转换为源文件格式进行存储,在需要执行某一数据库脚本时,首先根据待执行数据库脚本转换后的源文件标识,获取源文件中在脚本转换时采用的指定转换函数,进而调用该指定转换函数对源文件进行逆转换,执行逆转换得到的数据库脚本的内容,无需将数据库脚本的内容向用户显示,避免数据库脚本被恶意篡改,提高数据库脚本执行的安全性。

进一步的,上述第一函数获取模块410,可以具体用于:

根据待执行数据库脚本转换后的源文件标识,在预先构建的全局哈希表中查找源文件转换结构内存;

根据转换结构内存获取源文件中的指定转换函数。

进一步的,上述脚本执行的装置,该可以包括;

哈希表构建模块,用于在数据库服务端启动时,根据预先注册的全局数组中的源文件标识和源文件中的指定转换函数,构建全局哈希表。

进一步的,上述脚本执行模块420,具体可以用于:

调用源文件中的脚本长度函数,并根据待执行数据库脚本的长度建立对应大小的数据缓存区;

调用源文件中的脚本内容函数,在数据缓存区中缓存待执行数据库脚本的内容。

进一步的,上述脚本执行的装置,还可以包括:

源文件生成模块,用于根据待转换数据库脚本的标识,在指定目录下生成对应的源文件;

长度函数写入模块,用于在源文件中硬编码写入待转换数据库脚本的脚本长度函数;

内容函数写入模块,用于逐行解析待转换数据库脚本的内容,并根据解析后的脚本内容在源文件中硬编码写入待转换数据库脚本的脚本内容函数。

本实施例提供的脚本执行的装置可适用于上述任意实施例提供的脚本执行的方法,具备相应的功能和有益效果。

实施例五

图5为本发明实施例五提供的一种脚本更新的装置的结构示意图,如图5所示,该装置可以包括:

第二函数获取模块510,用于根据待更新数据库脚本转换后的源文件标识,获取源文件中的指定转换函数;

更新脚本写入模块520,用于调用源文件中的指定转换函数对源文件逆转换,并在指定文件中写入逆转换得到的待更新数据库脚本的内容。

本实施例提供的技术方案,预先将数据库中各个数据对象的数据库脚本对应转换为源文件格式进行存储,在需要更新某一数据库脚本时,首先根据待执行数据库脚本转换后的源文件标识,获取源文件中在脚本转换时采用的指定转换函数,进而调用该指定转换函数对源文件进行逆转换,在指定文件中写入逆转换得到的数据库脚本的内容,在脚本执行时,无需将数据库脚本的内容向用户显示,避免数据库脚本被恶意篡改,提高数据库脚本执行的安全性。

本实施例提供的脚本更新的装置可适用于上述任意实施例提供的脚本更新的方法,具备相应的功能和有益效果。

实施例六

图6为本发明实施例六提供的一种设备的结构示意图。如图6所示,该设备包括处理器60、存储装置61和通信装置62;设备中处理器60的数量可以是一个或多个,图6中以一个处理器60为例;设备的处理器60、存储装置61和通信装置62可以通过总线或其他方式连接,图6中以通过总线连接为例。

存储装置61作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的脚本执行的方法或者脚本更新的方法对应的模块。处理器60通过运行存储在存储装置61中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的脚本执行的方法,或者脚本更新的方法。

存储装置61可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置61可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置61可进一步包括相对于处理器60远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

通信装置62可用于实现设备间网络连接或者移动数据连接。

本实施例提供的一种设备可用于执行上述任意实施例提供的脚本执行的方法,或者脚本更新的方法,具备相应的功能和有益效果。

实施例七

本发明实施例七还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现上述任意实施例中的脚本执行和更新方法。该脚本执行的方法具体可以包括:

根据待执行数据库脚本转换后的源文件标识,获取源文件中的指定转换函数;

调用源文件中的指定转换函数对源文件逆转换,并执行逆转换得到的待执行数据库脚本的内容。

该脚本更新的方法具体可以包括:

根据待更新数据库脚本转换后的源文件标识,获取源文件中的指定转换函数;

调用源文件中的指定转换函数对源文件逆转换,并在指定文件中写入逆转换得到的待更新数据库脚本的内容。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的脚本执行的方法或者脚本更新的方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

值得注意的是,上述脚本执行和更新的装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1