使用Oracle OCI API需要C编程吗?

时间:2011-10-05 15:30:02

标签: oracle oracle11g oci

我在这里看:

http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28395/toc.htm

但是一切看起来都像C或C ++。我可以使用任何其他语言来使用OCI吗?

感谢。

编辑:我需要为LOB对象使用直接路径(blob,clob等)我相信我必须使用OCI来做到这一点。

编辑:我的OCI假设基于此:Can a direct path insert into a LOB column?

4 个答案:

答案 0 :(得分:4)

根据Oracle

  

“Oracle Call Interface(OCI)是最全面,最高的   性能,基于Oracle的原生'C'语言接口   公开Oracle数据库全部功能的数据库。“

但是,有不同的方法可以使用Oracle数据库。您想使用哪种语言,以及您实际想要实现的目标是什么?

答案 1 :(得分:1)

如果您想使用Java,可以使用JDBC OCI。我相信如果你愿意,还有通过Perl,Python和Ruby访问OCI的方法(尽管我从未使用它们)。

答案 2 :(得分:1)

理论上,每种可以调用标准C函数的语言都应该能够使用OCI。这包括C ++和Delphi等语言,但也包括托管语言,如C#(可以通过P / Invoke访问这些函数)或Java(使用Java Native Interface)。

但是,如果您的目标只是访问Oracle,但不关心通过OCI专门执行,那么使用专门针对您选择的语言的任何库都要好得多。例如,在C#下使用ADO.NET或在Java下使用JDBC。

大多数这些库无论如何都在内部使用OCI(除了一些直接连接的ADO.NET和JDBC驱动程序之外)。

答案 3 :(得分:0)

您会发现其他语言的大多数Oracle API都是使用语言通常用于与C库互操作的任何机制实际绑定到OCI。示例包括Python的cx_Oracle,OCaml的OCI*MLOratcl。这些通常将非常低级别的OCI抽象为从高级语言中更容易使用的东西(例如,连接到数据库是这些语言中的一行,但它是OCI中的一页代码,因为必须设置所有内容明确)。