Как получить доступ к БД Oracle без установки клиента Oracle и CX Oracle?

У меня есть два сервера RHEL под управлением Python 2.4 и 2.6 отдельно. На другом сервере есть база данных Oracle, к которой мне нужно получить доступ.

Я пытался установить cx_oracle на моем сервере RHEL, но узнал, что клиент Oracle должен быть установлен первым.

проблема в том, что у меня нет разрешения на установку клиента Oracle на обоих серверах RHEL. На тех же серверах программа Perl может подключаться к БД Oracle с помощью:

DBI->connect("dbi:Oracle:host=myhost.prod.com;sid=prddb",'username','password')

может ли Python сделать то же самое без установки cx_oracle и клиента Oracle? Или есть какие-либо предложения о том, как написать модуль самому сделать то же самое?

спасибо заранее!

3 ответов


обычно все, что вам нужно, это библиотеки, которые не обязательно требуют прав sudo. Извлеките их в место, из которого программное обеспечение сможет считывать и устанавливать следующие переменные среды соответственно:

ORACLE_HOME=path/to/where/you/extracted/libs
TNS_ADMIN=path/to/tnsnames.ora

Мне повезло пропустить tnsnames и просто указать хост, порт и т. д. В соединении, но вполне возможно, что вам это понадобится для cx_oracle...Я не помню, когда я использовал его много лет назад.


отрывок из http://omz-software.com/pythonista/forums/discussion/297/oracle-database/p1:

нет чистого клиента python для Oracle и, вероятно, никогда не будет. Даже замечательные сторонние наборы инструментов, такие как SQLalchemy, по-прежнему полагаются на cx_Oracle, чтобы сделать фактическую связь с серверами баз данных Oracle.

-кроме того, решив Google, ответ нет: кажется, нет никаких чистых клиентов Python Oracle в существование на сегодняшний день.


Если вы не хотите использовать cx_Oracle вы должны использовать сценарии expect. ( для Python-pexpect). Но нужно быть внимательным ко всем ожиданиям.