cx_Oracle.DatabaseError:ORA-12541:TNS:没有监听器

时间:2018-02-07 05:08:08

标签: python oracle instantclient

我想学习如何使用Python使用Oracle数据库。如果我理解正确,您可以使用Oracle Instant Client远程连接到Oracle数据库,但我无法连接。我怀疑问题是我不知道用于localhost / instance组合的参数是什么。我相信localhost只是我的机器名,或者它可能是字面上的本地主机'我尝试过,但我不知道如何找到帮助,告诉我如何找到数据库实例的服务名称。

在一个提示中我打开了python,导入了cx_Oracle并使用了' Easy Connect String'在this sample code中指定,使用"(我的机器名称)/ orclpdb"或字面意思" localhost / orclpdb" DEFAULT_CONNECT_STRING

示例代码创建了一个变量MAIN_CONNECT_STRING,我在命令提示符中尝试连接到远程数据库:

cnxn = cx_Oracle.connect(MAIN_CONNECT_STRING)
cx_Oracle.DatabaseError: ORA-12541: TNS:no listener

我找到的答案似乎基于this,或其他引用tnsnames.oralistener.ora的答案,这些答案都是我不具备的。我也尝试使用instantclient-sqlplus-nt-12.2.0.1.0

背景:

  • Windows 7
  • 我下载了cx_Oracle-6.1-cp27-cp27m-win32.whlinstantclient-basic-nt-12.2.0.1.0.zip
  • 我将.whl放入" C:\ Python27 \ Scripts \"
  • 我使用python -m pip install cx_Oracle --upgrade来安装cx_Oracle
  • 我解压缩了即时客户端zip并将子文件夹放在这里 " C:\ instantclient_12_2"
  • 我将;C:\instantclient_12_2添加到PATH
  • 的末尾

1 个答案:

答案 0 :(得分:0)

也许您可以使用中的安装说明 Windows的cx_Oracle文档,cx_Oracle for Windows

首先卸载您正在使用的cx_Oracle,然后尝试按照上面链接中的说明进行操作。