Python 和 Oracle 数据库 - "Error DPI-1050: Oracle Client library must be at version 11.2 or higher"

标签 python database oracle cx-oracle

几天前,我被要求开发一个能够连接到 Oracle DB 的 Python 应用程序。由于我已经安装了 Oracle 客户端(版本 12.2.0),因此我只是 pip 安装了 cx_Oracle 并尝试使用以下代码建立连接:

import pandas as pd
import cx_Oracle

connection = cx_Oracle.connect('username/password@service_as_described_in_tnsnames.ora')
cur=connection.cursor()

input("Press Enter to continue...")

cur.execute('select* from MY_PRETTY_TABLE')
for line in cur:
    print()

cur.close()
connection.close()

但是在尝试运行它时,我收到错误“DPI-1050:Oracle 客户端库必须为版本 11.2 或更高版本”。谷歌搜索后,我发现this回答,并尝试将我的代码更改为:

my_dsn = cx_Oracle.makedsn("host",port,sid="sid")
connection = cx_Oracle.connect(user="user", password="password", dsn=my_dsn)
cursor = connection.cursor()

querystring = "SQL query"
cursor.execute(querystring)

但是仍然出现同样的错误。值得注意的是,我已经在同一台计算机上使用了 Oracle DB 客户端,以将数据库与 Power BI 连接。

另外,如果有帮助的话,我的路径设置为:

C:\instantclient_12_1
C:\Users\oracle2\product\12.1.0\client_1
C:\Users\oracle2\product\12.1.0\client_1\bin
C:\Users\oracle\product\12.2.0\dbhome_1\bin

最佳答案

该错误意味着您在 PATH 的较早位置安装了另一个旧版本的 Oracle 客户端。您应该在计算机上搜索 OCI.DLL(使用 where.exe 或 dir 命令),然后移动或删除任何不必要的副本或根据需要调整 PATH。例如,一些较旧的应用程序将 OCI.DLL 错误地填充到 C:\Windows\System32 中。

关于Python 和 Oracle 数据库 - "Error DPI-1050: Oracle Client library must be at version 11.2 or higher",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52152943/

相关文章:

python - 通过 Pandas 中的函数替换 NaN 时索引超出范围

python - PyQt 项目 View 自定义拖放

sql - 无法通过shell脚本执行sql脚本

database - MongoDB - 查找多个字段不存在于另一个集合中的文档

oracle - 显示 PL/SQL 函数警告

java - 在容器外部定义 jta 数据源

python - 在 QSS 中创建发光边框

python - 将图形添加到 Reportlab PDF

android - SQLite 没有这样的列

mysql - 需要帮助选择不同的条目