已获得有关数据库的这些详细信息。
Userid & Password,
LDAP Server : stpoid.corp.com:3060:3131,
Context: cn=OracleContext,dc=corp,dc=com,
DB server= PRD1.
我可以使用sql developer和这些详细信息成功连接并查询数据库。我正在Windows 10上使用cx_oracle运行python3.6。
我阅读了https://stackoverflow.com/a/32151099/4799035中的指令,并模糊地发现我需要创建sqlnet.ora和/或tnsnames.ora和/或ldap.ora文件。但是这些说明在Windows上效果不佳。
但是我不确定我应该在Windows文件结构中的哪个位置创建它们?还是可以在任何地方创建它们并将其设置在路径变量中?变量的名称应该是什么?以及如何配置cx_oracle.connect()参数?我可以在cx_oracle.makedns()中传递这些参数吗?
任何文档或指南都会有所帮助。
请参见cx_Oracle手册条目Optional Oracle Net Configuration Files
如果cx_Oracle使用Instant Client库,则可以将文件放在network\admin
子目录中,例如c:\instantclient_19_5\network\admin\tnsnames.ora
。这是使用c:\instantclient_19_5
中的库的应用程序的默认位置。
或者,如果将它们放在自定义目录中,例如,在c:\configfiles
中,则可以将TNS_ADMIN
环境变量设置为该目录。您可以在启动Python之前进行设置,或者(对于cx_Oracle 6或更高版本)可以在应用程序中进行设置:
import os
import cx_Oracle
# Do this before opening a connection
os.environ['TNS_ADMIN'] = 'c:\configfiles'
您设法解决了这个问题吗?