[发明专利]一种数据绑定批量入库方法和装置有效
申请号: | 201210377418.5 | 申请日: | 2012-10-08 |
公开(公告)号: | CN102929951A | 公开(公告)日: | 2013-02-13 |
发明(设计)人: | 叶春生;车新奕;雷果;程涛木;冉梦旭;尹开中 | 申请(专利权)人: | 深圳市博瑞得科技有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 重庆市恒信知识产权代理有限公司 50102 | 代理人: | 刘小红 |
地址: | 518057 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 绑定 批量 入库 方法 装置 | ||
技术领域
本发明涉及数据库领域,具体是一种数据绑定入库方法和装置。
背景技术
oracle数据入库流程如下:DBA在oracle服务端创建表,在客户端通过一定的方法将数据入库到服务端表中。对于linux下客户端常用的方法有两种。
方法一:occi,occi是一个提供了c++应用程序使用oracle数据库中的数据的API接口,能够使c++编程最大限度利用oracle数据库操作,包括sql语句处理和对象处理。
方法二:sqlloader,sqlloader是oracle的数据加载工具,通常用来将大量外部数据文件迁移到oracle数据库中。对我们来说,如果待入库的数据就几十条,可直接到数据库里去一条条添加;但对几千上万甚至更多的数据来说,就不可能一条条添加了,所以sqlloader是必要的。
occi入库流程如下:程序开始-->创建环境变量-->创建数据库连接对象-->创建Statement类对象-->执行某张表的SQL语句处理数据-->释放Statement对象-->断开数据库连接-->释放环境变量。每张表都需要上述流程才能正确将数据入库。当多个表都需要入库时,如果每个表都按照流程设计,那么代码重用率就很低,而且也不便于后期添加删除维护,因此可以设计一套统一的occi调用接口,上层调用者无心关心底层实现细节,只需简单调用接口就可以将数据正确的入库。
sqlloader入库流程如下:构建某张表ctl文件-->准备待入库数据文件-->执行sqlldr命令将数据源导入数据库。同样的该流程只反应了一张表的入库流程,当多个表都需要入库时,能否统一ctl文件生成规则,统一sqlloader命令调度规则。都对我们提出更高的要求。
从上面分析不难看出,目前提供入库的方式都已成熟,但高效合理运用这些技术,充分发挥其技术特点的方法却不太多,或者差强人意。
发明内容
本发明的目的是同时提供两种数据入库方法(occi入库和sqlloader入库),提供一种通用的数据绑定接口方法,实现occi入库全过程和sqlloader ctl文件生成、数据文件生成、数据入库全过程。同时当occi入库失败时,启用sqlloader入库。
为了实现上述目的本发明采用的技术方案是,一种数据绑定入库方法,包括如下步骤:
A、底层提供对外全局初始化函数,occi初始化函数、sqlloader初始化函数和宏定义接口模板;其中宏定义接口模板,包括对于occi入库的消息结构与表之间绑定操作函数模板和消息结构字段与SQL语句绑定函数模板,对于sqlloader入库的消息结构与表ctl文件之间的绑定函数模板和消息结构字段与写文件的绑定函数模板。
B、上层在配置文件中配置入库方式,即occi或者sqlloader,只能选其一种入库方法。
C、上层调用步骤A全局初始化函数,底层读取步骤B配置文件,若是occi入库,则建立入库主机到数据库主机的连接池。
D、上层调用occi初始化函数或者sqlloader初始化函数;并在头文件中调用步骤A中的宏定义接口模板,建立消息结构与表的绑定函数,消息结构字段与SQL语句的绑定函数,消息结构与表ctl文件之间的绑定函数,消息结构字段与写文件的绑定函数。
E、当底层收到步骤D的occi初始化函数或sqlloader初始化函数,读取步骤B配置文件,对于occi根据c++类模板,调用步骤D对应消息结构与表的绑定函数,使用绑定函数获取的表字段初始化入库SQL语句,然后初始化该表occi数据队列,开启取队列线程,提供对外该表的插入数据函数模板,生成该表occi入库实例,并将该对象插入occi全局管理实例中;对于sqlloader根据c++类模板,调用步骤D对应消息结构字段与写文件的绑定函数初始化写文件,调用步骤D消息结构与表ctl文件的绑定函数生成该表的ctl控制文件,提供该表写文件方式入队列函数模板,开启取队列线程,生成该表写文件实例,并将该对象插入写文件全局管理实例中。
F、当有某张表数据需要入库时,上层调用步骤E中occi初始化时底层提供的对外该表的插入数据函数模板。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市博瑞得科技有限公司,未经深圳市博瑞得科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210377418.5/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置