如何在不安装Oracle客户端和cx_Oracle的情况下访问Oracle数据库?

时间:2013-10-02 17:06:22

标签: python oracle python-2.6 cx-oracle

我有两个分别运行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')

如果不安装cx_oracle和Oracle客户端,Python可以做同样的事吗?或者有没有关于如何自己编写模块来做同样事情的建议?

提前致谢!

3 个答案:

答案 0 :(得分:5)

摘自http://omz-software.com/pythonista/forums/discussion/297/oracle-database/p1

  

Oracle没有纯粹的python客户端,可能永远不会。即使像SQLalchemy这样精彩的第三方工具集仍然依赖于下面的cx_Oracle来与Oracle数据库服务器进行实际通信。

- 而且,由Google决定,答案是否定的:现在似乎没有任何纯Python客户端。

答案 1 :(得分:4)

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

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

我有最好的运气跳过tnsnames,只是在连接中指定主机,端口等,但很可能你需要它用于cx_oracle ...我不记得从什么时候开始使用它很久以前

答案 2 :(得分:0)

如果您不想使用 cx_Oracle ,则应使用expect脚本。 (对于python pexpect)。但是你需要谨慎处理所有期望。