ora-12154 не удалось разрешить... с клиентом Oracle Instant Instant

Вот подробности:

  1. Я установил oracle Instant Client 11.2.0.2.0 со страницы загрузки OTN на Windows 7 64-битной VM (VMware).
  2. Я пытаюсь подключиться к удаленной базе данных Oracle и могу успешно подключиться к одной программе с использованием TNS, но не с SQL*Plus и другими приложениями.
  3. Попытка соединиться с SQL*Plus, используя schema@servicename, пароль и т. Д., Выдает вышеуказанную ошибку.
  4. Для подключения через SQL Developer, как правило, я бы использовал базовую информацию о соединении и не полагался на tnsnames, но попытка обычного соединения дает мне: io error: unknown host specified, Разработчик SQL может успешно подключиться и запросить базу данных, если я использую протокол TNS.
  5. Попытка из других программ дает мне ту же ошибку, которую я получил с SQL*Plus. То же самое при попытке использовать имя службы из tnsnames.

Очевидно, что это разочаровывает, потому что это работает в одну сторону, а не в другую. Я выполнил все обычные инструкции по использованию мгновенного клиента, каталог с InstantClient был добавлен в PATH, также была создана запись TNS_ADMIN с каталогом в файле tnsnames.ora.

3 ответа

Решение

Ну, по своей прихоти, я перешел к изменению всего в моей настройке, чтобы он соответствовал серверу Windows 2003, который я ранее настраивал с помощью мгновенного клиента. Основными изменениями было размещение клиента мгновенного доступа в папке в корне диска (не в программных файлах /oracle/etc), но в c:/oracle, я знаю, я видел другие сообщения, в которых говорилось, что oracle был специфичен для символов в пути к каталогу., может быть, пробелы тоже нет-нет?

Я также добавил еще несколько переменных среды, anythign, которая была на другом компьютере, ORACLE_HOME (в корень экземпляра), SQL_PATH (то же самое) и добавил корень каталога в системную переменную PATH, а не просто в папку с моментальным клиентом. файлы. В любом случае, я рад, что это работает, но любое из этих изменений могло бы быть

Я установил мгновенный клиент 12.1. Для меня проблема была решена путем создания файла \network\admin\tnsnames.ora. Вот PowerShell, который я использовал:

$source = "C:\Users\USER1\Desktop\tnsnames.ora"
$target = "C:\oracle\product\12.1.0\client_1\network\admin"
mkdir $target
copy-item $source $target

Вы можете использовать ProcessMonitor и посмотреть, что делает ваш процесс sqlplus. В моем случае TNS_ADMIN был определен правильно, но по ошибке мои tnsnames.ora и sqlnet.ora имели глупое расширение ".txt", добавленное по умолчанию блокнотом при создании этих файлов. А поскольку в "Проводнике Windows" по умолчанию установлена ​​опция "Скрыть расширения для известных типов файлов", ошибка именования не была очевидной.

Другие вопросы по тегам