如何在cx_Oracle中接受包含'@'符号的密码

时间:2019-01-29 08:57:04

标签: python python-3.x oracle cx-oracle

下面是我在python上执行的代码。

 import cx_Oracle
 oracle_url = user/p@ssword@hostname:1521/db_service
 cx_Oracle.connect(oracle_url)

出现错误:ORA-12154:TNS:无法解析指定的连接标识符

尝试过的解决方案(适用于Powershell或CMD):

  1. 在密码周围添加“报价”没有帮助。
  2. 添加\“行情\”也不起作用。

1 个答案:

答案 0 :(得分:3)

您尝试过以下吗?

如果使用了SID,

dsn_tns = cx_Oracle.makedsn('server', 'port', 'sid')
conn = cx_Oracle.connect(user='username', password='password', dsn=dsn_tns)

或者如果使用ServiceName

dsn_tns = cx_Oracle.makedsn('server', 'port', service_name='service_name')
conn = cx_Oracle.connect(user='username', password='password', dsn=dsn_tns)