cx_Oracle connect - 具有负载平衡的连接字符串

cx_Oracle connect - connection string with load balancing

我有

格式的连接字符串
jdbc:oracle:thin:@(DESCRIPTION = (LOAD_BALANCE=ON) 
 (ADDRESS = (PROTOCOL = tcp)(HOST = aaa)(PORT = 1531))
 (ADDRESS = (PROTOCOL = tcp)(HOST = bbb)(PORT = 1526))
 (ADDRESS = (PROTOCOL = tcp)(HOST = ccc)(PORT = 1526))
 (ADDRESS = (PROTOCOL = tcp)(HOST = ddd)(PORT = 1526))
 (CONNECT_DATA = (SERVER=dedicated)(SERVICE_NAME=a.b.org))
)

如何使用cx_Oracle连接

connection = cx_Oracle.connect( .... ) 

使用上述指定格式的连接字符串?

其实很简单。您可以执行以下操作:

dsn = """(DESCRIPTION = (LOAD_BALANCE=ON) 
 (ADDRESS = (PROTOCOL = tcp)(HOST = aaa)(PORT = 1531))
 (ADDRESS = (PROTOCOL = tcp)(HOST = bbb)(PORT = 1526))
 (ADDRESS = (PROTOCOL = tcp)(HOST = ccc)(PORT = 1526))
 (ADDRESS = (PROTOCOL = tcp)(HOST = ddd)(PORT = 1526))
 (CONNECT_DATA = (SERVER=dedicated)(SERVICE_NAME=a.b.org))
)

"""
cx_Oracle.connect("user", "password", dsn)

实际上,您可以在 tnsnames.ora 文件中找到的任何连接字符串都可以作为 dsn 参数直接传递给 cx_Oracle.connect。