【技术实现步骤摘要】
数据库对象的安装方法、装置、设备和介质
[0001]本公开涉及数据库
,可用于金融领域或其他领域,更具体地涉及一种数据库对象的安装方法、装置、设备、介质和程序产品。
技术介绍
[0002]在数据库对象的安装过程中,诸如包(package)、存储过程(Stored procedure)或自定义函数等数据库对象,在编译检查过程中会检查数据库对象的具体实现中所依赖的其他数据库对象。如果编译检查过程中发现某个数据库对象依赖的其他数据库对象还未安装,则该数据库对象也将安装失败。
[0003]这种由于依赖冲突导致数据库对象安装失败的问题,在复杂业务系统的数据库搭建过程中影响非常显著,尤其在异构数据库迁移过程中。因为复杂业务系统的数据库中数据库对象数量多,依赖关系异常复杂。如果在数据库中直接执行数据库脚本进行数据库对象的安装,过程中不可避免会出现大量数据库对象因为依赖冲突而安装失败的问题。针对此问题,相关技术中要么需要多次重复安装才能安装完全部数据库对象,这会导致安装过程低效不可控;要么需要人工提前梳理数据库对象的依赖关系, ...
【技术保护点】
【技术特征摘要】
1.一种数据库对象的安装方法,包括:获取数据库对象清单,所述数据库对象清单中的数据库对象来自于数据库脚本;从所述数据库对象清单中提取出预定类型的数据库对象,得到至少一个目标对象;根据每个所述目标对象的类型,获取每个所述目标对象对应的预安装对象的创建脚本,其中,所述预安装对象与对应的所述目标对象类型相同且同名,所述预安装对象的创建脚本中不包含对其他数据库对象的依赖;在数据库中执行所述预安装对象的创建脚本,以在所述数据库中安装所述预安装对象;以及在所有的所述预安装对象安装完成之后,以利用所述目标对象覆盖所述预安装对象的安装方式,在所述数据库中执行所述数据库脚本。2.根据权利要求1所述的方法,其中,所述预定类型包括以下至少之一:包、存储过程和自定义函数。3.根据权利要求2所述的方法,其中,所述根据每个所述目标对象的类型,获取每个所述目标对象对应的预安装对象的创建脚本包括:当所述目标对象为包时,获取所述数据库脚本中所述目标对象的包声明创建脚本,其中,以所述目标对象的包声明创建脚本作为所述预安装对象的创建脚本。4.根据权利要求2所述的方法,其中,所述根据每个所述目标对象的类型,获取每个所述目标对象对应的预安装对象的创建脚本包括:当所述目标对象为存储过程或者自定义函数时,获取所述数据库脚本中所述目标对象的创建脚本;从所述目标对象的创建脚本中,截取对所述目标对象进行声明的语句,得到所述预安装对象的创建脚本中的声明部分;以及在所述预安装对象的创建脚本中的声明部分的基础上拼接预设的实现体模板语句,以得到所述预安装对象的创建脚本;其中,所述实现体模板语句是按照与所述目标对象同一类型的数据库对象的编写格式预先设置的语句。5.根据权利要求4所述的方法,其中,所述在所述预安装对象的创建脚本中的声明部分的基础上拼接预设的实现体模板语句,以得到所述预安装对象的创建脚本还包括:当所述目标对象为自定义函数时,从所述目标对象的创建脚本中解析所述目标对象的返回数据的数据类型;以及在拼接所述实现体模板语句的同时,以所述目标对象的返回数据的数据类型,填充所述实现体模板语句中的临时变量的数据类型。6.根据权利要求4所述的方法,其中,在所述以利用所述目标对象覆盖所述预安装对象的安装方式,在所述数据库中执行所述数据库脚本之后还包括:从所述数据库中用于保存数据库对象的第一系统视图中搜索所述实现体模板语句;以及当搜索不到所述实现体模板语句时,确定所述数据库中所述目标对象的安装无遗漏...
【专利技术属性】
技术研发人员:陈立璜,李奇伟,何思阳,孙迪,
申请(专利权)人:中国工商银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。