ORA-12557 TNS: адаптер протокола не загружается

Я пытаюсь разработать приложение c# Windows Forms, ориентированное на .NET 4 framework. Программа выполнит хранимую процедуру для базы данных Oracle, и при попытке открыть соединение с базой данных я получаю следующую ошибку.

ORA-12557 TNS: адаптер протокола не загружается

Я разрабатываю это в Visual Studio 2012 и сумел сделать Server Explorer подключиться к базе данных успешно, однако я продолжаю получать эту ошибку через мой приложение.

У меня есть два клиента Oracle 11g на моей машине. Один-32bit, а другой-64bit. Мне нужны оба для разных приложений, поэтому удалить их невозможно. Я также попытался изменить порядок домашних каталогов Oracle в переменной PATH. В настоящее время у меня есть 64bit один первый, с которым я хотел бы соединиться.

я подключаю свое приложение к базе данных, используя ODP.NET и ссылались на dll из 64bit приложение.

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

3 ответов


ошибка ORA-12577 связана с средой Windows или Oracle Home PATH, потому что команда sqlplus работает плавно, когда я выполняю ее внутри ORACLE_HOME\bin . Его из-за двух или более установок oracle (скажем, database и companion) в отдельных ORACLE_HOMEs на этой машине снимите значение ORACLE_HOME в вашем окне Для получения подробной информации, пожалуйста, выполните следующие действия и надеюсь, что вы получите решение. http://www.dba-oracle.com/t_ora_12577.htm


основная проблема заключается в том, что в установке Oracle instant client отсутствуют библиотеки DLL, которые существуют в установке сервера СУБД, требуемой приложением. Вот почему переключение Oracle homes с client_1 на db_1 работает, а не является чисто проблемой пути.

sqlplus работает в любой ситуации, потому что он использует минимальный набор DLL, которые существуют в обеих установках Oracle.


вот несколько вещей, чтобы проверить. Не забудьте попробовать #3 при необходимости, это исправить проблему для меня!

  1. убедитесь, что все службы Oracle запускаются
  2. убедитесь, что переменные окружения установлены (путь, oracle_sid, вам нужно будет=ORALOCAL, TNS_ADMIN=с:\Дев\Оракул\продукта\11.2.0\dbhome сети\\админ)
  3. попробуйте изменить значения переменных среды Path, например: "D:\Dev\Oracle\product\11.2.0\dbhome\bin" быть до "D:\dev\Oracle\product\11.2.0\client_32\bin" в приказ

Fissh