2

这是文件中的代码con = cx_Oracle.connect('/@database_name')

这是设置为使用我的 oracle 钱包,但由于某种原因它无法正常工作(拒绝登录)。如何在这行代码中输入我的用户名和密码?con = cx_Oracle.connect('/@database_name')

4

2 回答 2

4

你应该看看

https://cx-oracle.readthedocs.io/en/latest/user_guide/connection_handling.html#establishing-database-connections

要使用带有 cx_Oracle 的钱包,首先需要配置钱包,创建 sqlnet.ora 和 tnsnames.ora 文件,并且需要使用 dsn 属性

connection = cx_Oracle.connect(dsn="mynetalias", encoding="UTF-8")

其中 mynetalias 是 tnsnames.ora 中的 TNS 条目

mynetalias =
(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = yourhost )(PORT = yourport))
    (CONNECT_DATA =
        (SERVER = DEDICATED)
        (SERVICE_NAME = yourservicename)
    )
)

确保为使用钱包配置了 sqlnet.ora

WALLET_LOCATION =
(SOURCE =
    (METHOD = FILE)
    (METHOD_DATA =
        (DIRECTORY = /your_wallet_path_directory)
    )
)
SQLNET.WALLET_OVERRIDE = TRUE
于 2020-08-04T17:07:53.613 回答
0

你可以在下面使用,

import cx_Oracle
ip = '192.168.0.1'
port = 1521
service_name = 'my_service'
dsn = cx_Oracle.makedsn(ip, port, service_name=service_name)

db = cx_Oracle.connect('user', 'password', dsn)
于 2020-08-04T17:24:53.390 回答