【问题标题】:Connect as sys user using cx_Oracle in python to local database在 python 中使用 cx_Oracle 以 sys 用户身份连接到本地数据库
【发布时间】:2020-02-20 06:24:19
【问题描述】:

尝试使用 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

我哪里错了?请提供您的意见。谢谢

【问题讨论】:

  • 这个答案能解决你的问题吗stackoverflow.com/questions/13358656/…
  • 抱歉,没有。我的问题,我猜更多关于 Python 和 cx_Oracle 而不是数据库。通过 sqlplus 我可以使用监听器进行连接。
  • 好吧,你得到了数据库错误。这意味着您可以到达指定为 ORA-##### 的 DB 和 gettin Oracle 错误。我建议您在 Oracle 社区和 Stackoverflow 上查看这些错误代码。

标签: python cx-oracle


【解决方案1】:

由于某种原因,我的 cx_Oracle.connect 无法使用连接字符串。所以添加了显式 os 变量

os.environ["ORACLE_SID"] ='db1'
connection = cx_Oracle.connect("/", mode = cx_Oracle.SYSDBA)
cursor = connection.cursor()

【讨论】:

    猜你喜欢
    • 2013-06-17
    • 2010-09-15
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 2020-08-10
    • 1970-01-01
    • 2018-10-15
    相关资源
    最近更新 更多