Я хотел бы раскрыть здесь проблему, которую я должен знать, если у кого-то еще было то же самое (и исправило это :))
У меня есть скрипт Python (3.6.1 64 бит), использующий cx_oracle 6.0.3. подключить от Oracle 18c DB.
Связь работает хорошо.
Моя проблема, когда я пытаюсь создать переменную Python из определения типа базы данных, используя gettype.
Вот мой пример:
db = cx_Oracle.connect("scott/tigger@oracle_18c")
res = db.gettype("type_employee").newobject()
В зависимости от конфигурации у меня возникает следующая проблема:
2018-10-31 15:28:15,019 - ERROR - OCI-22303: type ""."type_employee" not found
С Oracle 11g скрипт работает хорошо.
С Oracle 18c, который зависит от клиента Oracle, которого я использую (я думаю, именно там я и занимаюсь своими исследованиями). Когда я использую клиент Oracle 11.1.0.x, он работает хорошо. проблема возникает, когда клиент - Oracle 12.
У меня есть другие тесты / изменения, которые нужно сделать:
- Обновите cx_oracle, чтобы использовать версию 7.0.0
- Тестовый клиент Oracle 12 с Oracle 11g DB
Я сделаю andpost здесь результат в ближайшее время.
Кто-нибудь имел / имеет такую же проблему и может поделиться опытом / решением?
Спасибо.
Редактировать 1
Я выполнил следующие дополнительные тесты с настройкой на базе данных Oracler 18c:
- Python 3.6.1 64 бит, CX-ORACLE 6.0.3, клиент Oracle 11 64 бит => ОК
- Python 3.6.1 64 бит, CX-ORACLE 7.0.0, клиент Oracle 11 64 бит => ОК
- Python 3.6.1 64 бита, CX-ORACLE 7.0.0, клиент Oracle 12 64 бита => NOK
- Python 3.6.1 64 бита, CX-ORACLE 6.0.3, клиент Oracle 12 64 бита => NOK
Использование клиента Oracle 12 32 бит не имеет смысла, поскольку оно несовместимо с моей конфигурацией.
Редактировать 2
Я выполнил следующие дополнительные тесты с настройкой на базе данных Oracler 11g:
- Python 3.6.1 64 бит, CX-ORACLE 6.0.3, клиент Oracle 11 64 бит => ОК
- Python 3.6.1 64 бита, CX-ORACLE 7.0.0, клиент Oracle 11 64 бита => ОК
- Python 3.6.1 64 бита, CX-ORACLE 7.0.0, клиент Oracle 12 64 бита => ОК
- Python 3.6.1 64 бита, CX-ORACLE 6.0.3, клиент Oracle 12 64 бита => ОК