gpt4 book ai didi

c++ - 无需安装 Oracle 客户端或即时客户端的 Oracle C++ 连接

转载 作者:行者123 更新时间:2023-11-28 00:43:52 26 4
gpt4 key购买 nike

我使用过一些 Oracle 工具,它们不需要安装任何 Oracle 客户端或即时客户端,不需要修改路径,也不需要设置 ODBC 数据源或 tnsnames.ora 文件。

我想知道这是怎么做到的。例如,oracmd ( http://www.withdata.com/oracmd.html ) 无需任何其他客户端工具即可连接到 Oracle。所以我们知道这是可能的。

基本上我想创建一个 R 包,它可以读取 SQL 文件并将 ip 地址、端口和 SID/服务名称作为参数并返回数据。唯一需要安装的是安装 R 包。我更喜欢免费/开源许可证来分发包。

我能够在没有客户端的情况下使用 JDBC 构建一个 R 包来执行此操作,但是对于超过 1000 行的数据集,性能非常糟糕。我正在寻找比 JDBC 更好的东西。

最佳答案

有一些公司对 Oracle 网络协议(protocol)进行了反向工程,因此他们不需要包含任何类型的客户端软件。通常,这些是实现有线协议(protocol) ODBC 驱动程序之类的公司。由于 Oracle 网络协议(protocol)未记录在案并且可能会在不同版本之间发生变化,因此这通常不是一项微不足道的工作——你说的是数十甚至数百人年的努力。

绝大多数应用程序(如您链接到的应用程序)要么在幕后使用 JDBC 并将包括瘦 JDBC 驱动程序,要么将在安装过程中透明地安装 Instant Client。 Instant Client 的全部意义在于允许应用程序开发人员将其与他们的应用程序捆绑在一起,以便应用程序安装也可以设置 Oracle 客户端软件。

综上所述,由于性能问题而需要放弃 JDBC 以及使用 C++ 会产生显着性能改进的前提对我来说似乎很可疑。如果操作正确,JDBC 应用程序提取数据的速度应该与 C++ 应用程序一样快。真正的瓶颈应该是数据库运行查询的能力和网络传输数据的能力。编写产生非常差性能的朴素 JDBC 代码当然是可能的,但这更像是一个应用程序编程问题,而不是 API 问题。

关于c++ - 无需安装 Oracle 客户端或即时客户端的 Oracle C++ 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17383941/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com