抱歉,这个问题太幼稚了,但对于我在该主题上的经历也是如此.
从谷歌搜索我所了解的内容,我只是想确认该理解是正确的.欢迎大家查明我错了.
> OCI基本上是一组API,供C/C++程序员用来编写C/C++
应用程序访问Oracle数据库.
> a)Oracle Instant Client SDK是使用OCI(???)的(DLL /共享库). C/C++
??C/C++程序员编写的代码链接到Oracle Instant Client库&
??因此也使用OCI.
b)即时客户端的好处是减轻了程序员编写某些内容的痛苦
??复杂代码(??).
c)即使C/C++程序员不使用Instant Client库,他们仍然可以使用OCI
??&完成工作(这正确吗?)
d)这是真的吗? C/C++程序员只需要OCI库来编写应用程序即可
??连接到远程Oracle数据库&表操作?我们需要任何ODBC吗
??司机还?如果是,为什么? oci.lib还不够吗?
> FULL Oracle Client&之间有什么区别?即时Oracle客户端?是真的吗
Instant Oracle客户端只是FULL Oracle客户端的一部分吗?
>我无法获得Instant Client的互操作性矩阵
Oracle数据库.在Oracle网站上进行了大量搜索.我唯一能找到的就是链接
到我无法访问的Oracle支持站点.
请澄清我的疑问.提前谢谢了.
最佳答案
简要地:
> OCI是C API库.还有一个名为OCCI的C库,但我不建议这样做(在各种编译器上C ABI更改/方言可能会出现问题)
> Instant和“ thick” Oracle客户端都包含OCI库(OCI.DLL或linclntsh.so). Instant Client提供的服务或多或少是独立的. e.i.它不依赖于Oracle客户端随附的其他库(比较Linux上ldd或Windows上depwalk的输出).
>两者也都包含必要的标题
>两个客户端中的C API实际上是相同的.我记得的唯一例外是一组受支持的数据库本机字符集. InstantClient仅支持UTF8,ISO Latin1和ASCII.
>“ thick”客户端还包含一个名为“ libxml.a”的库,当您要使用数据类型SYS.XMLTYPE时需要该库.该库未(出于某些未知原因)与InstantClient捆绑在一起
>“厚”客户端还包含一些方便的诊断工具,例如tnsping
> InstantClient非常容易“设置”.用户只需解压缩一个.zip文件即可.不必设置ORACLE_HOME PATH LD_LIBRARY_PATH env.变量.您只需dlopen()一个库文件,仅此而已.
> InstanctClient可以在没有tnsnames.ora的情况下工作(尽管它支持它),而不是可以使用类似jdbc的EZCONNECT
>除非您是Oracle业务合作伙伴,否则两种类型的客户端都不能重新分发.因此,您不得在应用程序中嵌入这些驱动程序的库.每个用户必须分别下载然后下载.
>到目前为止,我还没有找到一种如何区分InstantClient OCI.DLL库的C API方法.
>《 Oracle Call Interface程序员指南》中有InstantClient特定部分
>我记得当您设置ORACLE_HOME env时,InstantClient可能存在一些问题.变量,其值以斜杠“ /”结尾(或不结束?)