在cx_oracle上使用多个主机

尤索利亚

我正在使用cx_oracle pip软件包连接到工作中的oracle数据库。

dsn_tns = cx_Oracle.makedsn('1.2.3.4', '1521', service_name='TRADES')
conn = cx_Oracle.connect(user='analytics_user', password='welcome', dsn=dsn_tns)
c = conn.cursor()
c.execute('SELECT * FROM all_tables')

但是,我连接到的oracle db具有2个主机IP地址。

我得到的原始连接字符串是这样的;

SERVICE  =
   (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 1.2.3.4)(Port=1521))
     (ADDRESS = (PROTOCOL = TCP)(HOST = 1.222.33.44)(Port=1521))
     (CONNECT_DATA =
       (SERVICE_NAME = TRADES)
     )
   )

无论如何在cx_oracle上同时使用两者?还是有其他我可以使用的软件包允许呢?SQL_Alchemy?

棕熊

您可以按原样使用DSN字符串,而无需使用SERVICE =

DSN = """
   (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 1.2.3.4)(Port=1521))
     (ADDRESS = (PROTOCOL = TCP)(HOST = 1.222.33.44)(Port=1521))
     (CONNECT_DATA =
       (SERVICE_NAME = TRADES)
     )
   )
"""

with cx_Oracle.connect(user='user', password='pass', dsn=dsn_tns) as conn:
    c = conn.cursor()
    c.execute('SELECT * FROM all_tables')

感谢@ Christopher-Jones在这里的详细信息oracle-net-connect-descriptor-strings

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在 cx_Oracle 中处理多个游标

如何使用pyinstaller构建cx_oracle应用程序以使用多个Oracle客户端版本?

如何在El Capitan上安装cx_Oracle

在Windows上安装cx_Oracle时出错

python在cygwin上导入cx_Oracle错误

使用cx_oracle连接到Oracle数据库会在Windows上提供DPI-1047

使用python cx_Oracle,如何调用具有多个声明的DBMS_METADATA.SET_TRANSFORM_PARAM?

使用conda以正确的大小写获取cx_Oracle

使用Python设置cx_Oracle环境变量

使用cx_Oracle从引用游标中检索列名

使用绑定时,cx_Oracle返回空查询

如何使用cx_oracle执行SQL脚本

cursor.fetchall() 使用 cx_Oracle 返回空元组

如何在假脱机中使用python cx_Oracle

cx_Oracle 使用 Windows 身份验证

CX_Oracle CTE 执行

Cx_Oracle和Pyinstaller

cx_Oracle 向后兼容?

cx_oracle的安装失败

具有多个Oracle客户端版本的cx_Oracle

cx_Oracle无法识别要在Linux上安装的Oracle软件安装位置

使用 CX_Oracle 和 Pandas 从 Oracle db 读取“Unicode 字符“ü”的编码问题

使用python连接到Oracle数据库(cx_oracle)

如何使用cx_oracle django软件包连接到Oracle旧版数据库?

使用 cx_Oracle 将完整的 python 列表推送到 oracle db

Python 使用 cx_Oracle 在 Oracle BD 中导入/插入 CSV(无标题)

使用cx_Oracle包从python环境执行的Oracle SQL查询中获取动态日期

使用 cx_Oracle executemany() 从 Python 列表/字典批量插入 Oracle 数据库

使用python cx_oracle将数据导入到oracle