几天前,我被要求开发一个能够连接到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。