cx_ Oracle соединение не работает с 'DPI-1047: не удается найти 64-разрядную Oracle клиентскую библиотеку' - PullRequest
0 голосов
/ 03 августа 2020

Проблема при использовании подключения oracle к python источнику, oracle теперь работает на другом языке php (oci)

Ошибка:

Traceback (most recent call last):
  File "c:\xampp\htdocs\pyoracle\testConnectionOracle.py", line 4, in <module>
    conn = cx_Oracle.connect('xxx','xxx', dsn_tns,'UTF-8')
cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "failed to get message for Windows Error 126". See https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html for help

Код:

import cx_Oracle

dsn_tns = cx_Oracle.makedsn('192.168.1.217', '1521', service_name='xx') 
conn = cx_Oracle.connect('xx','xx', dsn_tns,'UTF-8')

c = conn.cursor()
c.execute('select * from database.table')
for row in c:
    print (row[0], '-', row[1])
conn.close()

1 Ответ

0 голосов
/ 04 августа 2020

Вот cx_ Oracle Windows инструкции по установке , которые вы, вероятно, нашли в сообщении об ошибке, которое вы процитировали.

Я предполагаю (i) у вас действительно 64- bit Oracle клиентские библиотеки 11g или новее, а также (ii) содержат необходимые распространяемые компоненты VS, как указано в инструкциях по установке. Тогда просто попробуйте добавить это в начало вашего скрипта:

cx_Oracle.init_oracle_client(lib_dir=r"C:\oracle\instantclient_19_6")

Используйте фактический путь к вашим клиентским библиотекам.

PHP может быть 32-битным и с использованием 32-битных Oracle библиотек. Если это так, поскольку у вас 64-разрядная версия Python, вам необходимо установить 64-разрядный Instant Client или установить 32-разрядную версию Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...