Python и Oracle DB - «Ошибка DPI-1050: клиентская библиотека Oracle должна быть версии 11.2 или выше» - PullRequest
0 голосов
/ 03 сентября 2018

Несколько дней назад меня попросили разработать приложение на Python, способное подключаться к БД Oracle. Поскольку у меня уже установлен клиент Oracle (версия 12.2.0), я просто установил 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 или выше ". После поиска в Google, я нашел этот ответ и попытался изменить свой код на:

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 на той же машине, чтобы подключить БД к 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

Ответы [ 2 ]

0 голосов
/ 20 июля 2019

Эта проблема была связана с клиентом Oracle Instant версии 19.3.0.0.0. Я удалил его и установил предыдущую версию клиента Oracle Instant 12.2.0.1.0, и все заработало. https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html

Важные вещи, которые нужно сделать перед попыткой выше:

Из командной строки Windows

c:> where oci.dll 

убедитесь, что вы нашли только одну запись и удалите лишние.

Убедитесь, что вы указали путь к среде для вновь установленного клиента.

0 голосов
/ 04 сентября 2018

Эта ошибка подразумевает, что у вас есть другая более старая версия клиента Oracle, установленная где-то ранее в вашей переменной PATH. Вы должны выполнить поиск OCI.DLL на своем компьютере (используя where.exe или команду dir) и либо переместить, либо удалить ненужные копии, либо настроить PATH по мере необходимости. Например, некоторые старые приложения неправильно загружали OCI.DLL в C: \ Windows \ System32.

...