[尝试使用Python cx_Oracle连接到Oracle数据库。在sqlplus中,当我连接到本地数据库时,确实要使用“ sqlplus / as sysdba”。我正在尝试在Python中使用没有密码的相同方法,但是得到ORA-01017或ORA-12541
tns_entry=cx_Oracle.makedsn('localhost',1521,'db1')
>>> conn = cx_Oracle.connect(mode = cx_Oracle.SYSDBA,dsn=tns_entry)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
cx_Oracle.DatabaseError: ORA-12541: TNS:no listener
>>> conn = cx_Oracle.connect("/",mode = cx_Oracle.SYSDBA,dsn=tns_entry)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
cx_Oracle.DatabaseError: ORA-12541: TNS:no listener
>>> conn = cx_Oracle.connect(mode = cx_Oracle.SYSDBA,dsn="TNS SERVICE")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
cx_Oracle.DatabaseError: ORA-01017: invalid username/password; logon denied
我要去哪里错了?请提供您的输入。谢谢
如documentation中所述,您可以使用下面的代码并尝试分配用户名,并且如果您使用的密码为空,则如下所示。
user = "sys"
pass = ""
connection = cx_Oracle.connect(user, pass, "dbhost.example.com/orclpdb1",
mode=cx_Oracle.SYSDBA, encoding="UTF-8")