Oracle Dump文件格式

程序简介
这是一个把Oracle exp导出的dump文件导入到Oracle数据库的工具。

前一段时间,有一个项目需要从Oracle导出的dump文件中提取数据,但是dump文件格式并不清楚,在网上也没有找到解释,只知道这是Oracle内部使用的不公开格式。 没有可参考的资料,只能自己研究了,通过考察二进制dump文件,结合Oracle数据存储格式的经验,基本清楚了dump文件的格式。 略去一些不需要的信息,终于可以把数据从文件中提取出来了。
现在把dump文件格式总结一下,并开发了一个模拟Oracle imp的程序,把数据重新导入到数据库中。

这里提供的是一份完整的dump数据导入程序的源代码,还包含一份Oracle exp导出的dump文件格式说明。
所需知识
这个软件是在Linux下用C语言调用OCI接口开发的,因此在阅读源代码前需要熟悉C语言、OCI编程技术和Oracle的一些基本概念。
源码列表
这里把源代码中的C语言文件列在下面,也可管中窥豹。

./source/import_table.c
./source/show_before.c
./source/import.c
./source/create_table.c
./source/put_column.c
./source/charset.c
./source/commit_work.c
./source/show_head.c
./source/bind_array.c
./source/complete_row.c
./source/copyright.c
./source/complete_table.c
./source/file_io.c
./source/is_character_type.c
./source/oci/checkerr.c
./source/oci/connect_db.c
./source/oci/disconnect_db.c
./source/prepare_insert.c

运行环境
下载的测试代码在64位 CentOS 5.6
Oracle 11.2.0.1上测试通过

Linux内核版本 2.6.18
在这个版本以上的Linux x86_64环境应该都可以运行
下载测试