Python - чтение Oracle из Linux или Windows с тем же кодом - PullRequest
0 голосов
/ 14 мая 2011

вот фон: у нас сервер Oracle работает под Windows.Несколько лет назад я написал клиент (windows), который считывает данные из Oracle, обрабатывает, создает XML и отправляет их обратно в управляющее программное обеспечение прибора (масс-спектрометр) (работающее на той же машине, что и Oracle).Утилита была написана на C ++ как dll с двумя оболочками: GUI и консолью (для LIMS).Соединение было выполнено через ADO / ODBC, поэтому вам не нужно устанавливать клиент Oracle (MS для Oracle ODBC драйвер работает просто отлично ...) Работает как шарм в течение многих лет, но ... Теперь LIMS мигрирует на Linux,У меня есть выбор:

  1. для написания версии для Linux и поддержки Win и Linux (что НЕ хорошо), или
  2. для написания независимого от платформы кода (думая о Python) и жить долго и счастливо.

вот мой (плохо сформулированный) вопрос: Можно ли написать код Python, который читает данные Oracle, находящиеся в Linux или Windows, ПРЕДОСТАВЛЯЯ, что клиент Oracle не установлен?

Редактировать : переформулировать плохо сформулированный вопрос: Какие минимальные изменения я должен внести в стандартную конфигурацию / lib Python, чтобы использовать один и тот же код в любом Linuxили Windows для чтения данных Oracle?

Все, что мне нужно, это просто выполнить несколько операторов SELECT, ТОЛЬКО ДЛЯ ЧТЕНИЯ.

уже сделано:

  1. понятьчто это МОЖЕТ быть сделано в Java
  2. Python: я могу определить, на какой платформе я работаю, и при необходимости разветвить код (я сделаю это, но предпочитаю НЕ, может быть просто строка соединения?)
  3. посмотрел на Python cx_Oracle, до сих пор не могу понять, смогу ли я использовать его и иметь один и тот же код для Linux и Win (сейчас пишу тест),Спасибо

    Edit1: нашел очень хорошую отправную точку: благодаря cx_Oracle и парадигме источника данных

Ответы [ 2 ]

0 голосов
/ 14 мая 2011

Использование pyodbc может быть другой опцией:

http://pyodbc.sourceforge.net/

0 голосов
/ 14 мая 2011

Ваш вопрос

Можно ли написать код Python, который читает данные Oracle, находящиеся на

, не имеет особого смысла, к которому вы можете получить доступ любой база данных в переносном виде с использованием стандартного API-интерфейса Python DB, который реализуется всеми связанными базами данных.

Так в чем здесь конкретная проблема?

В каждом случае вам нужна платформаи конкретные привязки в вашей системе, чтобы позволить лежащему в основе драйверу базы данных Python взаимодействовать с Oracle или какой-либо другой базой данных, но это полностью не зависит от кода приложения.Теоретически код может работать с любой базой данных, если есть драйвер и если ваше приложение использует «стандартные» функции SQL.

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