【问题标题】:OCI & Instant Client SDK & Oracle DatabaseOCI & Instant Client SDK & Oracle 数据库
【发布时间】:2013-10-28 08:31:44
【问题描述】:

很抱歉这个问题太天真了,但我对这个主题的经验也是如此。

通过谷歌搜索我的理解,我只想确认理解是正确的。欢迎大家指出我错的地方。

  1. OCI 基本上是一组 API,C/C++ 程序员可以使用这些 API 编写 C/C++ 应用程序访问 Oracle 数据库。

  2. a) Oracle 即时客户端 SDK 是一个使用 OCI (???) 的(DLL/共享库)。 C/C++ 由 C/C++ 程序员编写的代码链接到 Oracle 即时客户端库和 因此也使用 OCI。 b) 即时客户端的好处是它减轻了程序员写一些东西的痛苦 复杂的代码(??)。 c) 即使 C/C++ 程序员不使用 Instant Client 库,他们仍然可以使用 OCI & 完成工作(这是正确的吗??)

    d) 这是真的吗? C/C++ 程序员只需要 OCI 库来编写一个应用程序 连接到远程 Oracle 数据库并进行表操作?我们需要任何 ODBC
    司机也?如果是,为什么? oci.lib 还不够吗?

  3. FULL Oracle Client 和 Instant Oracle Client 有什么区别?是不是真的 Instant Oracle 客户端只是 FULL Oracle 客户端的一个子集?

  4. 我无法获得 Instant Client 的互操作性矩阵 甲骨文数据库。在 Oracle 网站上搜索了很多。我唯一能找到的是链接 到我无法访问的 Oracle 支持站点。

请澄清我的疑问。非常感谢。

【问题讨论】:

    标签: oracle oracle-call-interface instantclient


    【解决方案1】:

    简单地说:

    • OCI 是 C API 库。还有一个叫做 OCCI 的 C++ 库,但我不推荐它(你可能会遇到各种编译器上 C++ ABI 更改/方言的问题)

    • Instant 和“厚”Oracle 客户端都包含 OCI 库(OCI.DLLlinclntsh.so)。 Instant 客户端提供的服务或多或少是独立的。即它不依赖于 Oracle 客户端提供的其他库(比较 Linux 上 ldd 或 Windows 上 depwalk 的输出)。

    • 两者都包含必要的标题

    • 两个客户端中的 C API 实际上是相同的。我记得的唯一例外是一组受支持的数据库本机字符集。 InstantClient 仅支持UTF8ISO Latin1ASCII

    • “thick”客户端还包含一个名为“libxml.a”的库,当您想使用数据类型SYS.XMLTYPE 时需要该库。此库未(出于某种未知原因)与 InstantClient 捆绑

    • “厚”客户端还包含一些方便的诊断工具,例如tnsping

    • InstantClient 非常容易“设置”。用户只需解压缩单个 .zip 文件。不必设置 ORACLE_HOME PATH LD_LIBRARY_PATH env。变量。您只需dlopen() 一个库文件即可。

    • InstanctClient 可以在没有tnsnames.ora 的情况下工作(尽管它支持它)而不是你可以使用类似 jdbc 的EZCONNECT

    • 除非您是 Oracle 业务合作伙伴,否则这两种类型的客户端都不得重新分发。因此,您不能将这些驱动程序库嵌入到您的应用程序中。然后每个用户必须单独下载。

    • 目前我还没有找到一个 C API 方法如何区分 InstantClient OCI.DLL 库。

    • Oracle 调用接口程序员指南中有 InstantClient 特定部分

    • 我记得在设置 ORACLE_HOME 环境时 InstantClient 可能存在一些问题。变量和它的值以斜线结尾(?或不结尾?)'/'

    【讨论】:

      【解决方案2】:

      Oracle 即时客户端是完整/“厚”客户端的一小部分。它包括 OCI C 库、JDBC 和 ODBC,这使得用 C、Perl、Python、Java、Scala 等编写的程序可以连接到 Oracle 数据库服务器。即时客户端不包括熟悉的 Oracle 工具,如 sqlplus、sqlldr、exp、imp 等。但是,可以单独安装 sqlplus 以与即时客户端一起使用,而无需完整的客户端。

      【讨论】:

        猜你喜欢
        • 2023-03-21
        • 2014-10-18
        • 2019-03-11
        • 1970-01-01
        • 2018-02-23
        • 1970-01-01
        • 2022-08-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多