一种基于数据库链接的远程函数调用方法及相关产品与流程

摘要: 本发明涉及数据库,特别是涉及一种基于数据库链接的远程函数调用方法及相关产品。背景技术:1、数据库链接(databaselink,简称为dblink)是在关系型数...
一种基于数据库链接的远程函数调用方法及相关产品与流程

本发明涉及数据库,特别是涉及一种基于数据库链接的远程函数调用方法及相关产品。

背景技术:

1、数据库链接(database link,简称为dblink)是在关系型数据库中两个数据库之间建立的连接,允许在一个数据库中访问另外一个数据库中的对象,用于实现跨数据库之间的数据交互和共享。远程表是指在同构或者异构数据库中定义和存储的表,通过dblink可以执行跨库查询从而获取远程表的数据。

2、在实际业务场景中,用户不仅需要跨库访问远程表,还经常需要跨库调用远程数据库中已定义的函数。数据库函数是一段预定义的、可重用的程序代码,用于接收输入参数、执行特定操作以及返回结果。函数封装了特定的业务逻辑或计算规则,可以在结构化查询语言(structured query language,简称sql)语句中直接调用。

3、然而,通过dblink调用远程函数时存诸多难点,包括函数的远程执行、参数传递、结果返回、类型转换等。例如,为了准确的获取远程函数的所有基本信息到本地数据库,需要进行多次远程交互通信,远程函数的调用效率较低。另外,远程函数在本地数据库中不存在,在本地数据库中难以轻松完成对远程函数的解析和执行过程,从而影响远程函数的调用准确性。

技术实现思路

1、鉴于上述问题,提出了一种克服上述问题或者至少部分地解决上述问题的基于数据库链接的远程函数调用方法及相关产品。

2、本发明的一个目的是提供一种基于数据库链接的远程函数调用方法,以在减少远程交互通信次数的情况下完成远程函数的调用,从而提高跨库访问的效率和准确性。

3、本发明一个进一步的目的是要进一步提高远程函数调用的准确性。

4、本发明另一个进一步的目的是要兼容不同的输入形式,从而提升远程函数调用的通用性和兼容性。

5、具体地,根据本发明的一个方面,本发明提供了一种基于数据库链接的远程函数调用方法,包括:

6、基于用户输入的远程函数调用语句,在本地数据库中构建多重选择的查询语句;

7、将多重选择的查询语句通过数据库链接发送至远程数据库执行,获取远程数据库中与远程函数调用语句匹配的目标远程函数的函数信息;

8、基于函数信息在本地数据库中构建本地函数,并将本地函数映射到目标远程函数;

9、通过本地函数到远程数据库中调用并执行目标远程函数。

10、可选地,获取远程数据库中与远程函数调用语句匹配的目标远程函数的函数信息的步骤包括:

11、判断远程数据库中是否存在与远程函数调用语句匹配的远程函数;

12、若是,则判断远程数据库中是否存在多个匹配的远程函数;

13、若存在多个,则对所有匹配的远程函数进行重载匹配,得到目标远程函数,并获取目标远程函数的函数信息;

14、若不存在多个,则将匹配到的远程函数作为目标远程函数,并获取目标远程函数的函数信息。

15、可选地,对所有匹配的远程函数进行重载匹配的步骤包括:

16、获取所有匹配的远程函数中的函数信息,其中,函数信息包括参数个数和参数类型;

17、获取远程函数调用语句的调用参数信息,其中,调用参数信息包括参数个数和参数类型;

18、将各个匹配的远程函数的函数信息分别与调用参数信息进行比对;

19、基于参数个数和参数类型的匹配程度选定目标远程函数。

20、可选地,判断远程数据库中是否存在与远程函数调用语句匹配的远程函数的步骤包括:

21、获取远程函数调用语句中的待调用函数;

22、判断远程数据库中的远程函数与待调用函数的名称是否相同;

23、若相同,则确定远程数据库中存在匹配的远程函数;

24、若不相同,则确定远程数据库中不存在匹配的远程函数。

25、可选地,在基于用户输入的远程函数调用语句,在本地数据库中构建多重选择的查询语句的步骤之前,远程函数调用方法还包括:

26、接收用户输入的远程函数调用语句,其中,远程函数调用语句用于通过数据库链接访问远程数据库中的远程函数;

27、对远程函数调用语句进行分析,得到远程函数调用语句中的函数名称信息和调用参数信息,其中,函数名称信息的输入形式包括一段式输入、两段式输入和三段式输入,一段式输入仅包括函数名,两段式输入包括命名空间名和包名中的任意一种以及函数名,三段式输入包括命名空间名、包名以及函数名。

28、可选地,基于用户输入的远程函数调用语句,在本地数据库中构建多重选择的查询语句的步骤包括:

29、识别远程函数调用语句中函数名称信息的输入形式;

30、根据远程函数调用语句中的函数名称信息以及识别得到的输入形式构建包含多个查询分支的查询语句,其中,多个查询分支分别对应不同的输入形式,每个查询分支用于从远程数据库中查询与对应输入形式的函数名称信息匹配的远程函数。

31、可选地,在通过本地函数到远程数据库中调用并执行目标远程函数的步骤之后,远程函数调用方法还包括:

32、本地数据库接收远程数据库返回的目标远程函数的执行结果;

33、获取基于外部数据封装器预先构建的数据类型匹配规则;

34、基于数据类型匹配规则,将执行结果转换为本地数据库兼容的数据类型;

35、将转换后的执行结果作为本地函数的返回值输出。

36、根据本发明的另一个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一种的基于数据库链接的远程函数调用方法的步骤。

37、根据本发明的又一个方面,还提供了一种计算机程序产品,其包括计算机程序,该计算机程序被处理器执行时实现上述任一种的基于数据库链接的远程函数调用方法的步骤。

38、根据本发明的再一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上的计算机程序,处理器执行计算机程序以实现上述任一种的基于数据库链接的远程函数调用方法的步骤。

39、本发明的基于数据库链接的远程函数调用方法,通过基于用户输入的远程函数调用语句构建多重选择的查询语句,经数据库链接一次远程交互通信获取匹配的目标远程函数信息,并在本地构建映射函数后触发远程函数执行,实现了在减少远程交互通信次数的情况下完成远程函数的调用,无需多次交互查询远程数据库,保证了函数调用链路的简洁性与数据获取的完整性,从而减少了远程交互通信开销,进而提高了跨库访问的效率和准确性。

40、进一步地,本发明的基于数据库链接的远程函数调用方法,通过在获取远程函数信息时判断匹配的远程函数的数量,在仅存在单个匹配的远程函数的情况下直接选定目标远程函数,并在存在多个匹配的远程函数的情况下进行重载匹配,实现了不同匹配场景下的自适应目标远程函数选定,同时确保了在函数重载场景下能够准确选择用户意图调用的目标远程函数,避免了因匹配到多个同名函数导致的调用错误,从而提高了远程函数调用的准确性。

41、更进一步地,本发明的基于数据库链接的远程函数调用方法,通过识别函数名称的输入形式,对应构建覆盖所有输入形式的多个查询分支并整合得到查询语句,实现了兼容不同输入形式的匹配需求,保证了仅进行一次远程数据库交互即可获取与用户不同输入形式匹配的函数信息,从而提升了远程函数调用的通用性和兼容性。

42、根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。