我已获得有关数据库的这些详细信息。
Userid & Password,
LDAP Server : stpoid.corp.com:3060:3131,
Context: cn=OracleContext,dc=corp,dc=com,
DB server= PRD1.
我可以使用 sql Developer 以及这些详细信息成功连接和查询数据库。 我在 Windows 10 上运行 python3.6 和 cx_oracle。
我在 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 使用即时客户端库,那么您可以将文件放在 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'
关于python-3.x - 如何在 Windows 中通过 LDAP 将 Python 3.x cx_Oracle 连接到 Oracle DB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59393822/