В свете темы
https://olegon.ru/showthread.php?t=6134 разбирался как малым траффиком поставить клиентскую часть от версии выше 8.1.7. Давно знал о существовании Instant Client от Oracle (пытался его прикрутить под Linux когда-то), а теперь пришлось разобраться в свете указанной проблемы.
Не забываем что на компе у нас уже установлен Oracle Reports 6i, он прекрасное работает и предыдущие версии СуперМага с ним работали тоже, т.е. необходимые базы уже прописаны, доступность БД по сети есть.
Качаем базовый комплект InstantClient 11g.
При необходимости там можно дополнительные опции к этому клиенту докачать.
На страничке закачки в самом низу есть инструкция по установке
Цитата: Installation Steps:
1. Download the appropriate Instant Client packages for your platform. All installations REQUIRE the Basic package.
2. Unzip the packages into a single directory such as "instantclient". 3. Set the library loading path in your environment to the directory in Step 2 ("instantclient"). On many UNIX platforms, LD_LIBRARY_PATH is the appropriate environment variable. On Windows, PATH should be used.
4. Start your application and enjoy.
Типа ничего сложного
2. Распаковываем zip-архив в любую директорию на своём компе (например C:\oracle\instantclient\), если выкачивали доп. опции, то и их туда же.
3. Прописываем (методом дописывания в начало строки) в системной переменной PATH каталог, куда только что распаковали архив.
4. Типа всё должно работать.
Но у нас же СуперМаг, он так просто не сдаётся :)
После проделанных ранее шагов мы избавляемся от ошибки, которая гласит что версия клиентского ПО Oracle должна быть 8.1.7 и выше, но получаем следующюю ошибку
"База данных "MyDB" не зарегистрирована в файле TNSNAMES.ORA"
при этом в стартовом окне список БД есть, этот список от Oracle 8.0.6.
На просторах инета: и в файле
ODBC_IC_Readme_Win.html , который был в архиве instantclient-odbc-win32-11.1.0.7.0.zip, скачанном "на всякий случай", встретилась рекомендация прописать переменную TNS_ADMIN.
Цитата: Define the TNS_ADMIN to point the .ora files directory for OCI.
This needs to be set for OCI to resolve the TNS name.
If TNS_ADMIN is not set, OCI will examine an operating system dependent set of directories to find tnsnames.ora. This search path includes looking in the directory %ORACLE_HOME%/network/admin/tnsnames.ora. This is the only reason to set the ORACLE_HOME environment variable for Oracle Instant Client. If ORACLE_HOME is set when running Instant Client applications, it must be set to a directory where Instant Client exists (in this case C:\Oracle\instantclient_11_1).
Создал переменную в системных и прописал в неё каталог в котором лежит TNSNAMES.ORA (в моём случае C:\oracle\instantclient\network\admin\), но думаю что нет необходимости держать два файла одинкавого содержания, а достаточно будет прописать путь к TNSNAMES.ORA, который использовался до этого Oracle 8.0.6.
Всё, СуперМаг работает, несите пиво.
Осталось всё это заавтоматизировать и можно раскладывать.
Размер архива ~46Мб, в распакованном виде ~136Мб.