首页 > 解决方案 > 用于oracle远程数据库连接的Python脚本

问题描述

第一次在这里发帖,我不知道我是否在正确的区域,如果我错了,请原谅我。

我有一个项目需要能够将 python 脚本连接到远程数据库才能通过脚本运行查询。uni 正在运行 Oracle Database 12C,并提供了 tnsnames.ora 文件和 InstantClient10_1。他们给出的唯一其他要求是将 VPN 连接到 uni 网络,我已经这样做了。

我能够通过 ssh 连接到数据库并通过 SQLPlus 运行查询,并且已经看到该脚本在其他计算机上远程运行,但是如果我尝试运行任何连接脚本,那么我会收到混合消息,范围从“TNS:否侦听器”到“连接超时”。这是在将 tnsnames 文件放在即时客户端目录中并更改路径和 tns_admin 环境变量以指向该目录之后。

我觉得我需要安装的不仅仅是这些,但我正在努力寻找一个白痴指南来让它工作。

非常感谢任何建议。

标签: pythondatabaseoracle

解决方案


欢迎来到 SO!

在深入研究各种 Python 库问题之前,请确保您可以建立从客户端到数据库的连接。

防火墙:确保端口已打开。nc -vz dbnode 1521

如果 sqlplus 在客户端可用别名方式:

export TNS_ADMIN=/path/to/where/my/tnsnames.ora-file-is-located
sqlplus user/pass@TNS_ALIAS 

如果 sqlplus 在客户端可用非别名方式:

sqlplus user/pass@"THE_WHOLE_TNS_STRING_IN_HERE_NO_SPACES_STARTS_AND_ENDS_WITH_PARENTESIS" 

如果 sqlplus 在客户端以 EZ 方式 (EasyConnect) 可用:

sqlplus user/pass@dbnode:1521/MYDATABASE_SERVICE_NOT_SID

如果您没有在客户端安装 sqlplus,请确保已安装它,或者它是 SQLcl 或 SQL Developer (GUI) 的表亲。此外,版本 10 客户端与 db 12c 不兼容,因此您需要更新的客户端。

在您能够建立连接之后,您就可以继续使用您的 python 库了。有大量教程如何使用 python 连接到 Oracle 数据库。

祝你好运


推荐阅读