Вы все уволены.Помимо этого, мне нужна помощь в расшифровке кода ошибки, который я вижу, когда пытаюсь использовать модуль cx_Oracle для подключения к базе данных Oracle.По какой-то безответственной и дебильной причине я использую Python2.7 вместо Python3000.Я вижу следующее сообщение об ошибке (конечно, копируем / вставляем):
>>> connection = cx_Oracle.connect('user', 'password123', 'db1')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
cx_Oracle.DatabaseError: DPI-1050: Oracle Client library is at version 11.2 but
must be at version 0.0 or higher
>>>
Я нашел ужасную документацию внутри самого модуля с помощью этой команды: help('cx_Oracle.connect')
Эта команда даетСледующая страница, первая страница показана только для краткости:
Help on class Connection in cx_Oracle:
cx_Oracle.connect = class Connection(__builtin__.object)
| Methods defined here:
|
| __enter__(...)
|
| __exit__(...)
|
| __init__(...)
| x.__init__(...) initializes x; see help(type(x)) for signature
|
| __repr__(...)
| x.__repr__() <==> repr(x)
|
| begin(...)
|
| cancel(...)
|
| changepassword(...)
|
| close(...)
|
| commit(...)
|
| createlob(...)
|
| cursor(...)
|
| deq(...)
|
| deqoptions(...)
|
| enq(...)
|
| enqoptions(...)
|
| getSodaDatabase(...)
|
| gettype(...)
|
| msgproperties(...)
|
| ping(...)
|
| prepare(...)
-- More --
На следующей веб-странице я нашел лучшее объяснение о том, как использовать API: https://dzone.com/articles/python-code-can-connect-oracle
Интересно, почемуавторы модулей не написали четких инструкций, как это делал автор веб-страницы, таких как:
# Connect using the ordered parameters user, password and SID.
dbconn = cx_Oracle.connect('user', 'password' ,'SID')
Я также нашел дополнительную документацию по следующему URL: https://developer.oracle.com/databases/database-for-python-developers-1
Эта документация может бытьиз другой эпохи и для более ранней реализации базы данных Oracle.
Насколько я понимаю, этот плагин предназначен только для баз данных 11g Oracle и, возможно, ниже.Подключаемые базы данных, которые я использую, и обычные базы данных, отсутствие лучшего термина, все 12c.Этот плагин предназначен только для версии <= 11 базы данных Oracle? </strong>
При копировании / вставке ниже показан баннер из одной из баз данных.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing op
ions
С уважением,
тупой парень
---------------------- ОБНОВЛЕНИЕ ----------------------------------------------------
Я взял полезныйDev по совету этого программного проекта, и теперь я получаю новую ошибку.Я удалил некоторые вещи, которые, по моему мнению, мне не нужны из моего пути относительно версии 11 БД Oracle, и увидел новое сообщение об ошибке:
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bit (
Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import cx_Oracle
>>> connection = cx_Oracle.connect('user', 'password', 'oracledb')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
cx_Oracle.DatabaseError: DPI-1047: 32-bit Oracle Client library cannot be loaded
: "C:\app\client\corpDrone\product\12.1.0\client_1\bin\oci.dll is not the correct a
rchitecture". See https://oracle.github.io/odpi/doc/installation.html#windows fo
r help
Я понял это. Я следовалссылку в сообщении об ошибке выше, а затем загрузил 32-битное мгновенное клиентское программное обеспечение lite и поместил это как первое, что на моем путиЗатем я последовал руководству и поместил файл tnsnames.ora в мою секунду, на которую ссылается переменная среды TNS_NAMES.:) Надеюсь, это поможет извините позже.: D
Еще более простой вариант - переустановить вашу реализацию Python.В моем случае мне нужен 64-битный Python для связи с 64-битным программным обеспечением СУБД Oracle.