模仿Oracle exp/imp的工具

程序简介
模仿Oracle的 exp/imp utilities开发的Oracle数据库导出/导入工具。

有一个项目中希望集成一个Oracle数据备份的工具,很多解决方案是通过脚本调用Oracle的exp命令实现的。 这是一个简单易行的办法,但也有缺点,数据库用户密码和连接信息都在脚本中,如果其他地方修改了密码, 而在脚本中忽略了,程序就不能备份了。如果导出过程有错误,也不能及时发现。还有就是明文暴露了密码。
基于上述的考虑,决定自己写一个Oracle数据备份工具,可以模仿exp/imp来开发。 工具中只是模仿了exp/imp的命令行参数,其他都是自己设计开发的。 如果希望用在项目中,修改参数传递方式和错误输出方式就可以轻松与自己的项目集成在一起。

这里提供的是一份完整的Oracle数据导出/导入程序的源代码,还包含一份详细的设计说明,包括设计思路和技术实现要点。
所需知识
这个软件是在Linux下用C语言调用OCI接口开发的,在阅读源代码时需要熟悉C语言、OCI编程技术和Oracle的一些基本概念。OCI编程技术已经在文档中讲解, 所以这也是一个学习OCI编程的好机会。源代码有详细的注释,方便理解程序的流程和思想。
你能得到什么
文档中对OCI编程有系统的讲解,对OCI中的一些高级技术,比如数组获取数据,数组插入数据,数据分片处理,LOB数据读写,RETURNING CLAUSE的处理等。 学习这个软件能够使你学会OCI编程的大部分流程和技巧,OCI是操作Oracle数据库最快的接口,学会了OCI编程,对其他接口的使用也非常有帮助, 你会理解怎样提高数据存取的速度。学习这个软件还能掌握怎样设计你的数据存储结构,使得用计算机语言处理起来更加方便,一个程序要想写起来简单、 准确,数据结构的设计非常重要,这些都可以在代码中看到。

现在免费就能获得这些代码和文档,学会了能显著增加你的技术能力和编程技巧,赶快来下载看看吧。
源码列表
这里把源代码中的C语言文件列在下面,也可管中窥豹。

./source/check_error.c
./source/convert_sqlt.c
./source/exp/write_head.c
./source/exp/single_export.c
./source/exp/export_create_table.c
./source/exp/write_table_info.c
./source/exp/export_create_constraint.c
./source/exp/fetch_lob.c
./source/exp/multiple_export.c
./source/exp/export_table_info.c
./source/exp/free_lob_locator.c
./source/exp/fetch_long.c
./source/exp/export_create_index.c
./source/exp/export_table.c
./source/exp/export_column_info.c
./source/exp/convert_type.c
./source/exp/export.c
./source/exp/write_cache.c
./source/exp/prepare_select.c
./source/imp/import_table.c
./source/imp/multiple_insert.c
./source/imp/insert_lob.c
./source/imp/import.c
./source/imp/create_table.c
./source/imp/execute_insert.c
./source/imp/free_lob_locator.c
./source/imp/read_head.c
./source/imp/read_table_info.c
./source/imp/read_file.c
./source/imp/create_index_constraint.c
./source/imp/insert_long.c
./source/imp/set_current_schema.c
./source/imp/single_insert.c
./source/imp/prepare_insert.c
./source/copyright.c
./source/connect_db.c
./source/disconnect_db.c

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

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