基于oracle的伞状数据导入导出方法

文档序号:6481875阅读:181来源:国知局
专利名称:基于oracle的伞状数据导入导出方法
技术领域
本发明涉及ORACLE的数据导入导出技术,特别是一种数据一点导入到多点或一 点导出到多点的伞状数据导入导出方法。
背景技术
目前数据的导入导出技术主要有两类,第一类是数据备份和恢复,第二类是外部 数据导入到库表或内部数据导出到数据文件,本发明主要属于第二类范畴即外部数据导入 到库表或内部数据导出到数据文件。第二类数据导入导出方法目前有SQL礼oader、 spool 等,这些工具和方法大多在导入导出成本、大批量执行的效率上下功夫,但目前这些工具都 只支持数据按原信息点对点的进行导入导出操作,不支持数据的分散导入导出操作,也不 支持可编程的数据导入导出接口。

发明内容
本发明的目的是提出一种基于事务特有临时表和多维内存片的伞状数据导入导 出方法,本发明是针对现有数据导入导出工具不能将外部数据一点导入到多点或将内部数 据一点导出到多点而提出的。 本发明的技术解决方案是基于ORACLE的伞状数据导入导出方法。数据导入时主 进程将外部数据批量以内存数组的形式读入到内存,调用封装后的OCI数据交换接口批量
解析内存数组,将解析后的内存数组导入事务特有临时表;外部数据导入到事务特有临时 表后通过调用基于事务特有临时表的伞状导入API,基于事务特有临时表的伞状导入API 将自定义的ORACLE函数或过程作为函数参数执行,将外部数据分散到自定义的多张实体 表中,自定义的ORACLE函数或过程定义了事务特有临时表的数据分散度。数据的分散度和 多维统计粒度完全取决于API的实参,可提供很大的自由度和灵活性。
内部数据批量导出文件导出时调用封装后的OCI数据交换接口将内部数据以内 存数组的形式读入到内存,批量导出内存数组;内部数据导出到内存数组后,通过调用基于 多维内存片的伞状导出API,伞状导出API将自定义的ORACLE函数指针作为参数执行,将 内部数据分散导出到多个文件。数据的分散度和多维统计粒度完全取决于API的函数实 参,可提供很大的自由度和灵活性。伞状导入导出API为基于事务特有临时表的伞状导入 API(应用程序编程接口 )和基于多维内存片的伞状导出API。 本发明采用基于OCI的可编程接口封装方法采用OCI可编程接口 ,将复杂的API 封装在一起,完成内存数组的批量解析、SQL解析、SQL执行、数据导入、数据导出、回退、提 交等多个原子操作,通过这些原子操作控制数据的线性导入和线性导出。
本发明基于以下几个部件组成 1)基于OCI的数据交换接口, OCI是ORACLE调用接口 (Oracle Call Interface), 亦称数据交换接口 ,提供了一组可对ORACLE数据库进行存取的接口子例程(函数);
2)基于事务特有临时表的伞状导入API (应用程序编程接口 );
3)基于多维内存片的伞状导出API。 本发明的有益效果是1)利用0CI封装数据交换部件,减少SQL的解析和执行次 数,大大提高数据导入导出效率。SQL是结构化查询语言是一种数据库查询和程序语言。2) 采用基于事务特有临时表和开放式的伞状导入API,可将导入数据以多维方式分散到数据 库的各个实体表中。3)采用内存数组和开放式的伞状导出API,可将导出数据以多维方式 分散导出到多个文件中。 与现有导入导出方法相比的优势现有导入导出技术只能将外部数据导入到内部 一点或将内部数据导出到外部一点,且不能对数据根据具体需求做多维的导入或导出。本 发明可以将数据多维分散导入或导出,可支持复杂的数据中间层或多通道数据输出。


图1是本发明的各部件结构示意图
图2是本发明的数据导入时序图
图3是本发明的数据导出时序图
具体的实施方式 可编程伞状导入API :进程通过调用封装后的OCI数据交换接口 ,将外部数据导入 到事务特有临时表后,进程调用伞状导入API, API以自定义ORACLE函数或过程作为实参
来分析临时表数据,并将临时表数据按多维方式分散导入到多张实体表中,数据的分散度 和多维统计粒度完全取决于API的实参,可提供很大的自由度和灵和性。可编程伞状导出 API :进程通过调用封装后的OCI数据交换接口,将内部数据导出到内存数组,进程调用伞 状导出API, API以自定义的函数指针作为参数执行,将内存数组中的数据分散导出到多个 数据文件中,数据的分散度和多维统计粒度完全取决于API的实参,可提供很大的自由度 和灵和性。 ( — ) 数据导入的处理过程 1.进程将外部数据文件读入内存数组; 2.调用封装后的OCI数据交换接口批量解析内存数组,分多次执行SQL将内存数 组导入到事务特有临时表; 3.进程调用伞状导入API,API以自定义的ORACLE过程或函数作为实参分析事务 特有临时表,将临时表中的数据分散到多张实体表中; 4.进程做提交,清理内存数组,ORACLE自动清理临时表,提交分散后的各实体表, 释放系统资源。
( 二 ).数据导出的处理过程 1.进程通过调用封装后的OCI数据交换接口将内部数据导出到内存数组;
2.调用伞状导出API,API以自定义的函数指针作为实参执行,自定义函数分析内 存数组,将内存数组以多维方式导出到多个文件; 1、若未提供自定义的函数指针作为API实参,则按原表结构导出数据文件。
2、进程做提交,清理内存数组,释放系统资源。
权利要求
基于ORACLE的伞状数据导入导出方法,其特征是1)、数据导入时主程序将外部数据批量以内存数组的形式读入到内存,调用封装后的OCI数据交换接口批量解析内存数组,将解析后的内存数组导入事务特有临时表;外部数据导入到事务特有临时表后通过调用基于事务特有临时表的伞状导入API,基于事务特有临时表的伞状导入API将自定义的ORACLE函数或过程作为参数执行,将外部数据分散到自定义的多张实体表中,自定义的ORACLE函数或过程定义事务特有临时表的数据分散度;2)内部数据批量导出数据导出时调用封装后的OCI数据交换接口将内部数据以内存数组的形式读入到内存,批量导出内存数组;内部数据导出到内存数组后,通过调用基于多维内存片的伞状导出API,伞状导出API将自定义的ORACLE函数指针作为参数执行,将内部数据分散导出到多个文件;数据的分散度和多维统计粒度完全取决于API的函数实参;伞状导入导出API为基于事务特有临时表的伞状导入API和基于多维内存片的伞状导出API。
2. 采用基于OCI的可编程接口封装方法采用OCI可编程接口,将复杂的API封装在 一起,完成内存数组的批量解析、SQL解析、SQL执行、数据导入、数据导出、回退、提交等多 个原子操作,通过这些原子操作控制数据的线性导入和线性导出。
全文摘要
基于ORACLE的伞状数据导入导出方法,数据导入时主进程(程序)将外部数据批量以内存数组的形式读入到内存,调用封装后的OCI数据交换接口批量解析内存数组,将解析后的内存数组导入事务特有临时表;外部数据导入到事务特有临时表后通过调用基于事务特有临时表的伞状导入API,基于事务特有临时表的伞状导入API将自定义的ORACLE函数或过程作为参数执行,将外部数据分散到自定义的多张实体表中,自定义的ORACLE函数或过程定义了事务特有临时表的数据分散度;内部数据批量导出数据导出时调用封装后的OCI数据交换接口将内部数据以内存数组的形式读入到内存,批量导出内存数组;内部数据导出到内存数组后,通过调用基于多维内存片的伞状导出API,伞状导出API将自定义的ORACLE函数指针作为参数执行,将内部数据分散导出到多个文件。
文档编号G06F9/44GK101706779SQ20091003626
公开日2010年5月12日 申请日期2009年10月12日 优先权日2009年10月12日
发明者何毅, 余志刚, 王金松, 邓建强, 邵九松, 陆如华 申请人:南京联创科技集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1