14

我有两台分别运行 Python 2.4 和 2.6 的 RHEL 服务器。我需要访问的另一台服务器上有一个 Oracle 数据库。

我试图在我的 RHEL 服务器上安装 cx_oracle,但发现必须先安装 Oracle 客户端。

问题是,我无权在两台 RHEL 服务器上安装 Oracle 客户端。在相同的服务器上,Perl 程序可以使用以下命令连接到 Oracle 数据库:

DBI->connect("dbi:Oracle:host=myhost.prod.com;sid=prddb",'username','password')

Python 可以在不安装 cx_oracle 和 Oracle 客户端的情况下做同样的事情吗?或者对如何自己编写模块来做同样的事情有什么建议吗?

提前致谢!

4

3 回答 3

6

摘自https://forum.omz-software.com/topic/184/oracle-database

Oracle 没有纯 Python 客户端,而且很可能永远不会。甚至像 SQLalchemy 这样出色的第三方工具集仍然依赖于底层的 cx_Oracle 来与 Oracle 数据库服务器进行实际通信。

——同样,由谷歌决定,答案是否定的:截至今天,似乎不存在任何纯 Python Oracle 客户端。

于 2013-10-02T17:14:15.647 回答
4

通常,您需要的只是库,它们不一定需要 sudo 权限。将它们提取到软件能够读取的位置并相应地设置以下环境变量:

ORACLE_HOME=path/to/where/you/extracted/libs
TNS_ADMIN=path/to/tnsnames.ora

我很幸运跳过了 tnsnames,只在连接中指定了主机、端口等,但很可能你会需要它来用于 cx_oracle...我不记得我很久以前是什么时候使用它的了。

于 2013-10-02T17:20:55.353 回答
0

如果您不想使用cx_Oracle,您应该使用期望脚本。(对于python pexpect)。但是您需要小心处理所有期望。

于 2016-05-08T08:15:09.397 回答