[发明专利]一种数据处理方法及装置有效
申请号: | 201410055711.9 | 申请日: | 2014-02-19 |
公开(公告)号: | CN103838614B | 公开(公告)日: | 2017-12-22 |
发明(设计)人: | 孙东旺;文继军;王传廷 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45;G06F17/30 |
代理公司: | 北京中博世达专利商标代理有限公司11274 | 代理人: | 申健 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据处理 方法 装置 | ||
技术领域
本发明涉及计算机领域,尤其涉及一种数据处理方法及装置。
背景技术
外部例行程序(External Routine)通常指使用高级编程语言编写,并可以嵌入SQL(Structured Query Language,结构化查询语言)语句的程序。外部例行程序的源代码经过编译后可以供数据库管理系统调用,以便于扩展数据库功能。数据库系统包括数据库和数据库管理系统,数据库用于存储数据,数据库管理系统用于对数据库的运行管理、维护等。通常情况下,数据库管理系统可以是结构化查询语言数据库管理系统(MySQL)等,数据库可以是结构化查询语言数据库(Sql Server)、甲骨文数据库(Oracle)等,数据库对高级编程语言提供广泛支持,所述高级编程语言可以是C语言、C++语言、JAVA语言、COBOL(Common Business Oriented Language,面向商业的通用语言)等。
现有技术中,数据库系统可以通过内嵌数据库管理系统、内嵌扩展语言编译模块,对使用高级编程语言编写的外部例行程序的源代码进行编译得到外部例行程序的目标代码,所述数据库管理系统可以是MySQL、Teradata等,所述扩展语言编译模块可以是DB2、Postgresql等。然后,根据用户设置的目标名称和目标地址将外部例行程序的目标代码存储到数据库,该目标名称用于唯一标识外部例行程序的目标代码,该目标地址用于标识外部例行程序的目标代码存储在数据库中的地址,以便于根据该目标名称和该目标地址调用所述外部例行程序的目标代码。也可以先通过高级编程语言的编程工具编写、编译外部例行程序的源代码后,然后根据用户设置的目标名称和目标地址将外部例行程序的目标代码复制到数据库,且需要将该目标名称和该目标地址等信息在数据库中注册,以便于数据库管理系统识别和调用外部例行程序的目标代码。
但是,不同的运行平台的中央处理器不同,不同中央处理器的指令集也不同,所以高级编程语言编写的外部例行程序在不同的运行平台上运行时需要不同的编译器来编译,得到适合在当前运行平台运行的外部例行程序的目标代码,所述运行平台为外部例行程序的目标代码运行时所需要的硬件和/或软件。所述指令集用于将外部例行程序转化为适合在运行平台上运行外部例行程序的目标代码。例如,当一外部例行程序编译成x86版本的目标代码时,所述目标代码只能在x86指令集的中央处理器上运行。因此,数据库系统中需要内嵌不同的编译器来编译外部例行程序的源代码,对数据库系统的扩展能力受到限制,且在编译外部例行程序时存在安全问题。
发明内容
本发明的实施例提供一种数据处理方法及装置,能够有效提高数据库系统的扩展能力。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种数据处理方法,包括:
接收外部例行程序的源代码,所述外部例行程序的源代码由高级编程语言编写;
编译所述源代码得到中间码,所述中间码是任意运行平台的虚拟机都能够识别的字节流;
根据运行平台的指令集将所述中间码转化为便于在所述运行平台上运行的机器码;
将所述机器码存储到数据库。
结合第一方面,在第一种可实现方式中,在所述接收外部例行程序的源代码之前,所述方法还包括:
接收发送所述外部例行程序的源代码的第一用户设备发送的数据库访问请求;
根据所述数据库访问请求判断所述第一用户设备是否拥有访问所述数据库的权限;
若所述第一用户设备拥有访问所述数据库的权限,接收所述第一用户设备发送的外部例行程序的源代码,以实现将所述源代码转化为所述机器码并将所述机器码存储到所述数据库。
结合第一方面或第一方面的第一种可实现方式,在第二种可实现方式中,所述编译所述源代码得到中间码之前,进一步包括:
检查所述源代码访问所述数据库中对象的范围是否在预先设置的访问所述数据库中对象的范围内;
若所述源代码访问所述数据库中对象的范围在所述预先设置的访问所述数据库中对象的范围内,编译所述源代码得到所述中间码。
结合第一方面或第一方面的第一种可实现方式,在第三种可实现方式中,所述编译所述源代码得到所述中间码之前,进一步包括:
检查所述源代码对所述数据库中对象的操作是否是预先设置的对所述数据库中对象的操作,所述操作包括对所述对象的修改、增加或删除;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410055711.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:空调床
- 下一篇:一种便携式折叠画板架