tnsnames.ora слишком сложно настроить - PullRequest
0 голосов
/ 01 марта 2019

У меня есть tnsnames.ora и PL / SQL Developer.Я хочу, чтобы PL / SQL Developer установил соединение на основе tnsnames.ora.Я прочитал, что ожидается, что tnsnames.ora будет найден в $ ORACLE_HOME / (...), но у меня не установлено ни одного продукта Oracle, и эта системная переменная вообще не установлена.Я подумал, что, может быть, если я установлю эту переменную в каком-нибудь фиктивном месте, содержащем мой файл tnsnames.ora, у меня все получится, но при подключении я получу:

Initialization error
Could not locate OCI dll
OracleHomeKey:
OracleHOmeDir:'my dummy path'

Я знаю, что такое OCI.Раньше я связывал php со своими базами данных Oracle, используя модули на основе oci.Я понятия не имею, откуда PL / SQL Dveloper берет этот OCI, когда $ ORACLE_HOME не установлен мной вручную.Я проверил, есть ли OID dll в каталоге установки в Program Files (я использую Windows), но его там не было.Почему в каждом руководстве по подключению с использованием tnsnames.ora предполагается, что у пользователя установлен Instant_client?PL / SQL Developer установил его для меня под капотом?

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Сообщение об ошибке довольно специфично:

Не удалось найти OCI.dll

В отличие от программного обеспечения Java (например, SQL Developer ) PL / SQL Developer зависит от программного обеспечения Oracle Database Client, ядром которого является библиотека OCI.dll .

TNSNAMES.ORA не является проблемой.Вместо этого это программное обеспечение, которое отсутствует на вашем компьютере.Поэтому вам нужно установить последнюю версию Oracle Database Client ... для Microsoft Windows ... .Обратитесь к документации PL / SQL Developer , чтобы выяснить, какая версия требуется и нужна ли вам 32- или 64-разрядная версия.

0 голосов
/ 01 марта 2019

True;Вы можете поместить TNSNAMES.ORA в любое место на вашем диске.Затем установите переменную среды TNS_ADMIN, которая будет указывать на этот каталог, например,

M:\>set tns_admin
TNS_ADMIN=C:\0_Oracle_library

M:\>

. При этом продукты Oracle будут искать ее в этом месте.Даже если существует несколько файлов TNSNAMES.ORA (поскольку каждый программный продукт Oracle создает свою собственную копию), будет использоваться только один из них.

...