Python脚本到oracle远程数据库连接

2024-06-16 09:05:52 发布

您现在位置:Python中文网/ 问答频道 /正文

第一次在这里发布,我不知道我是否在正确的区域,所以请原谅我,如果我太远了

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

我能够通过ssh连接到数据库,并通过SQLPlus运行查询,并且已经看到该脚本在其他计算机上远程运行,但是如果我尝试运行任何连接脚本,那么我会收到一系列消息,从“TNS:No Listener”到“connection Timeout”。这是在将tnsnames文件放置在instant client目录中并更改path和tns_admin环境变量以指向该目录之后进行的

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

任何建议都将不胜感激


Tags: 文件项目网络目录脚本数据库区域远程
1条回答
网友
1楼 · 发布于 2024-06-16 09:05:52

欢迎来到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(EasyConnect):

sqlplus user/pass@dbnode:1521/MYDATABASE_SERVICE_NOT_SID

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

建立连接后,就可以继续使用python库了。有大量教程介绍如何使用python连接到Oracle数据库

祝你好运

相关问题 更多 >