使用Python连接到远程Oracle数据库

时间:2019-11-18 14:12:17

标签: python oracle cx-oracle dbeaver

我正在尝试使用Python连接到远程Oracle数据库。 我可以使用DBeaver直接访问数据库,并且已经从“连接配置->连接设置->常规”选项卡(可以通过右键单击数据库并打开它来打开)中的以下Python代码中复制参数。选择“编辑连接”)

import cx_Oracle

host_name   = # content of "Host"
port_number = # content of "Port"
user_name   = # content of "User name"
pwd         = # content of "Password"
service_name = # content of "Database" (the "Service Name" option is selected)

dsn_tns = cx_Oracle.makedsn(host_name, port_number, service_name = service_name)
conn = cx_Oracle.connect(user = user_name, password = pwd, dsn = dsn_tns)

但是,出现以下错误:

DatabaseError: ORA-12541: TNS:no listener

我发现与此问题相关的其他答案建议修改listener.ora文件中的某些值,但是我的计算机上没有此类文件,也不知道可以在哪里获取该文件。有人有建议吗?

1 个答案:

答案 0 :(得分:2)

该错误有两个原因。

  • 您尝试访问时数据库暂时不可用
  • 您计算机上的Oracle客户端应用程序配置不正确

我认为配置不正确。 参见链接:https://oracle.github.io/python-cx_Oracle/

ip = '192.168.1.1'
port = 1521
SID = 'YOURSIDHERE'
dsn_tns = cx_Oracle.makedsn(ip, port, SID)

db = cx_Oracle.connect('username', 'password', dsn_tns)