【问题标题】:Does using the Oracle OCI API require C programming?使用 Oracle OCI API 是否需要 C 编程?
【发布时间】:2011-10-05 15:30:02
【问题描述】:

我在看这里:

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?

【问题讨论】:

  • 我相信有一些库可以让您使用来自其他语言(如 Perl、Java 和 Python)的 OCI。
  • 是“OCI”总是“OCI”。我的意思是它与 C 中的所有 API 相同吗?

标签: oracle oracle11g oracle-call-interface


【解决方案1】:

根据Oracle

《Oracle 调用接口(OCI)是最全面、高 性能,基于原生“C”语言的 Oracle 接口 展现了 Oracle 数据库全部功能的数据库。”

但是,使用 Oracle 数据库有不同的方法。您想使用哪种语言,您真正想要实现什么?

【讨论】:

  • 只是不是 C 语言。我正在尝试对 BLOB 使用直接路径,因为由于 LOB 列,我认为我不能将 SQL Loader 与 DP 一起使用。
  • @johnny:SQL Loader 给你带来了什么样的问题?也许这应该是一个新问题?
  • @FrustratedWithFormsDesigner 我还有一个问题,但没有答案:stackoverflow.com/questions/7663083/…
  • @johnny:这是一个很好的问题,但仅仅过了一个小时。给它一些时间。 ;)
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2013-11-26
        • 2011-05-06
        • 2016-05-12
        • 1970-01-01
        • 1970-01-01
        • 2021-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多