Oracle 的低层 C 接口——OCI,是搞高性能数据库开发绕不开的一块硬骨头。《Oracle Call Interface Programmer's Guide b28395》就是你啃这块骨头时的利器。文档讲得比较细,从怎么连库、跑 SQL,到事务控制、错误,基本面面俱到。

11g R1 版本的 OCI 接口稳定性还不错,安全机制也比老版本强了不少,适合部署在一些对性能和稳定性要求比较高的生产环境里。想用 C 直接跟 Oracle 数据库打交道的,建议认真看看。

比如你要写个和大型 Oracle 系统对接的数据同步模块,或者要做底层的 PL/SQL 调用,OCI 的接口可以让你把执行逻辑压得更低、响应也快,而且控制力强。你可以直接控制内存、事务粒度,也不用绕一圈走 ODBC 那种高层包装。

不过话说回来,OCI 上手确实有点陡,新手刚看会觉得 API 多、逻辑比较分散,所以建议边看文档边写 Demo,不然容易晕。还好这份文档例子够全,错误和数据结构也解释得比较清楚。

对了,如果你想用 C++来调 Oracle,也可以看看它的兄弟接口——OCCI,和 OCI 在概念上挺像,封装得更面向对象一点,适合不想写那么多底层代码的情况。

如果你用的是navicat连 Oracle 时缺oci.dll,也可以顺带看看相关资源。有兴趣研究底层封装的,还可以看看别人怎么把 OCI 重新封装成更简洁的 C 语言接口,挺有启发。

,如果你正打算在 Oracle 11g 上写点硬核代码,或者项目里刚好要求 C 语言直连数据库,这份《OCI 编程指南》值得你好好啃一啃。

如果你不熟 OCI,建议配合文档里的示例代码一起试,边跑边看,理解会更快。