【技术实现步骤摘要】
本专利技术属于计算机
,具体涉及一种为数据库增加多语言动态编译执行引擎的方法和系统。
技术介绍
在SQL Server或Oracle中如果需要编程实现一定的逻辑处理,则需要使用T-SQL(或PL-SQL)来实现,这些语言属于过程化语言,只具有最基本的变量定义、执行流控制、系统功能函数,另外T-SQL本身不适合做复杂的逻辑判断和逻辑运算,无法实现复杂的数据结构、编写效率较低,缺乏面向对象的灵活性,在开发工具中也没有代码自动提示、补全,也没有配色和强大的人性化的调试功能。现有数据库的功能作用只是对于数据的增删改查,无法对数据进行数据逻辑方面的处理,如对数据的分析、转换、过滤、清洗、挖掘、路由、预测等复杂的高级逻辑分析处理,而系统自带的函数较少且功能有限、使用T-SQL编写效率低,容易出错,无法满足更为复杂的数据逻辑分析处理。
技术实现思路
本专利技术所要解决的技术问题是如何使得数据库实现更为复杂的业务逻辑判断和逻辑运算,提高数据库的扩展性和灵活性。。针对以上技术问题,本专利技术提供了一种为数据库增加多语言动态编译执行引擎的方法,包括:S1:数据库数据操作过程中、自定义函数执行时或存储过程执行时,当执行扩展逻辑函数时,判断脚本仓库中是否有所述扩展逻辑函数对应的扩展脚本代码;S2:若所述脚本仓库中有所述扩展逻辑函数对应的扩展脚本代码,根据所述扩展脚本代码对应的参数标识值,检测内存是否已经编译存在所述扩展脚本代码对应的脚本扩展实例;S3:若已经编译存在所述脚本扩展实例,从内存读取定位已编译的脚本扩展实例,将调用所述脚本扩展实例的上下文参数传入所述脚本扩展实例,判 ...
【技术保护点】
一种为数据库增加多语言动态编译执行引擎的方法,其特征在于,包括:S1:数据库数据操作过程中、自定义函数执行时或存储过程执行时,当执行扩展逻辑函数时,判断脚本仓库中是否有所述扩展逻辑函数对应的扩展脚本代码;S2:若所述脚本仓库中有所述扩展逻辑函数对应的扩展脚本代码,根据所述扩展脚本代码对应的参数标识值,检测内存是否已经编译存在所述扩展脚本代码对应的脚本扩展实例;S3:若已经编译存在所述脚本扩展实例,从内存读取定位已编译的脚本扩展实例,将调用所述脚本扩展实例的上下文参数传入所述脚本扩展实例,判断所述脚本扩展实例是同步运行还是异步运行;S4:若所述脚本扩展实例是同步运行,则由多语言动态脚本执行引擎驱动运行所述脚本扩展实例,若所述脚本扩展实例是异步运行,则由后台新的线程运行,或将运行所述脚本扩展实例的任务放入到任务队列等待运行;其中,所述扩展逻辑函数对应的扩展脚本代码是根据需要扩展的业务编写并存储至脚本仓库中的扩展脚本代码。
【技术特征摘要】
1.一种为数据库增加多语言动态编译执行引擎的方法,其特征在于,包括:S1:数据库数据操作过程中、自定义函数执行时或存储过程执行时,当执行扩展逻辑函数时,判断脚本仓库中是否有所述扩展逻辑函数对应的扩展脚本代码;S2:若所述脚本仓库中有所述扩展逻辑函数对应的扩展脚本代码,根据所述扩展脚本代码对应的参数标识值,检测内存是否已经编译存在所述扩展脚本代码对应的脚本扩展实例;S3:若已经编译存在所述脚本扩展实例,从内存读取定位已编译的脚本扩展实例,将调用所述脚本扩展实例的上下文参数传入所述脚本扩展实例,判断所述脚本扩展实例是同步运行还是异步运行;S4:若所述脚本扩展实例是同步运行,则由多语言动态脚本执行引擎驱动运行所述脚本扩展实例,若所述脚本扩展实例是异步运行,则由后台新的线程运行,或将运行所述脚本扩展实例的任务放入到任务队列等待运行;其中,所述扩展逻辑函数对应的扩展脚本代码是根据需要扩展的业务编写并存储至脚本仓库中的扩展脚本代码。2.根据权利要求1中的方法,其特征在于,所述步骤S3还包括:若不存在编译的所述脚本扩展实例,则将所述扩展脚本代码载入多语言动态脚本编译引擎,加载扩展拦截语言所需要的外部关联模块和资源进行编译,将编译后的内存字节存储于内存并实例化,以得到所述脚本扩展实例;其中,所述扩展脚本代码根据需要采用预设语言进行编写,所述多语言动态脚本编译引擎用于对采用所述预设语言编写的扩展脚本代码进行编译。3.根据权利要求1中的方法,其特征在于,所述步骤S2还包括:若所述脚本仓库中没有所述扩展逻辑函数对应的扩展脚本代码,则结束所述扩展逻辑函数执行过程。4.根据权利要求1中的方法,其特征在于,所述步骤S4还包括:检测所述脚本扩展实例的运行过程是否出现异常或运行过程超时,若所述脚本扩展实例的运行过程没有出现异常和运行过程超时,则返回正常运行结果,若出现异常,异步记录运行的异常信息并返回,若运行过程超时,异步记录运行过程超时的时长并返回。5.根据权利要求1中的方法,其特征在于,将所述扩展逻辑函数对应的扩展脚本代码存储至脚本仓库中的过程包括:根据需要扩展的业务,编写扩展脚本代码;检验所述扩展脚本代码是否能正常编译,若是,将所述扩展脚本代码存储至所述脚本仓库,否则,对所述扩展脚本代码进行修改,以使所述扩展脚本代码能正常编译,并将能正常编译的扩展脚本代码存储至所述脚本仓库。6.一种为数据库增加多语言动态编译执...
【专利技术属性】
技术研发人员:闫观涛,刘生权,张庆化,梅宝强,熊品卿,薛腾腾,
申请(专利权)人:北京北森云计算股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。