Как я могу получить доступ к двум базам данных Oracle с разными версиями (8i и 9), используя perl? - PullRequest
4 голосов
/ 15 декабря 2010

В настоящее время я обращаюсь к базе данных Oracle версии 9i (9.2.0.8.0), используя Perl-модули DBI (1.613) и DBD :: Oracle (1.26). Текущий масштаб проекта теперь требует, чтобы я получил доступ к базе данных Oracle версии 8i (8.1.7.4.0) и, согласно проекту DBD :: Oracle , я могу получить доступ только ко второй базе данных с DBD :: Oracle версии 1.20 или ниже.

Я знаю, что мог бы использовать версию 1.20 DBD для доступа к обеим базам данных, но мне было интересно, возможно ли установить две версии модуля DBD и использовать приемлемую версию для каждой базы данных (менее подверженную ошибкам).

Ответы [ 3 ]

6 голосов
/ 15 декабря 2010

Я не верю, что версия сервера имеет какое-либо отношение к версии DBD :: Oracle, которую вы можете использовать, только версия клиентских библиотек , которую вы устанавливаете.Версии клиентских библиотек Oracle 9.2, 10.1 и 10.2 поддерживают подключение к серверу Oracle 8.1.7.4, а последняя версия DBD :: Oracle остается совместимой со всеми клиентскими библиотеками от 9.2 и выше, поэтому я не думаю, что вы будетена самом деле есть какие-либо проблемы на всех.Однако если вы установите клиент версии 11, вы потеряете возможность подключения к серверам версий ниже 9.2.0.

4 голосов
/ 15 декабря 2010

Установите разные версии DBI / DBD :: Oracle в двух разных местах, см. INSTALL_BASE / --install_base. Получите к ним доступ отдельно, установив PERL5LIB соответственно.

local :: lib помогает автоматизировать весь этот процесс.

3 голосов
/ 16 декабря 2010

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

  • установите обе версии в вашей системе, используя local :: lib

  • запустить сервер DBD :: Proxy с @LIB, настроенным для загрузки одной версии DBD :: Oracle

  • запустите ваш скрипт с @LIB, настроенным для загрузки другой версии DBD :: Oracle

  • в вашем скрипте подключитесь к одной базе данных, используя DBD :: Oracle, как обычно, и к другой через прокси.

...