我正在尝试使用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文件中的某些值,但是我的计算机上没有此类文件,也不知道可以在哪里获取该文件。有人有建议吗?
答案 0 :(得分:2)
该错误有两个原因。
我认为配置不正确。 参见链接: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)