Oracle ORA-12154: TNS: не удалось разрешить имя службы Ошибка? - PullRequest
14 голосов
/ 15 октября 2008

Я пользователь SQL Server.

Я работаю над проектом, в котором используется оракул (которым я редко пользуюсь) Мне нужно создать соединение ODBC, чтобы я мог получить доступ к некоторым данным через MS Access У меня есть приложение на моей машине под названием oraHome90. Похоже, что он позволяет настраивать что-то, называемое слушателем, в «утилите настройки сети», я думаю, что «Настройка имени службы локальной сети» также должна быть выполнена. ИТ-поддержка дала мне эту информацию, чтобы установить соединение ODBC. Я перепробовал каждую комбинацию, о которой могу подумать. Я могу пройти тест, который успешно проходит тестирование для «входа» в базу данных сервера Oracle. Когда я пытаюсь создать соединение ODBC, я получаю следующую ошибку: ORA-12154: TNS: не удалось разрешить имя службы.

Предполагая, что я хочу начать с нуля, и предполагается, что следующая информация позволит мне подключиться к базе данных… .. Любые предложения или комментарии? Примечание: в конечном итоге у проекта будет веб-сайт .ASP, запрашивающий данные, но сначала я должен доказать, что могу видеть данные, используя соединение ODBC через MS Access

Service name: SERVICENAME
HOST = HOST.XYZi.com
User Id: MYUSERID
Password: MYPASSWORD
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

'Oracle Connection
Dim ocst
Dim oconn

ocst = "Provider=OraOLEDB.Oracle;" & _ 
        "Data Source=DATASOURCE;" & _ 
        "User ID=CHIJXL;" & _ 
        "Password=password;" 

set oconn = CreateObject("ADODB.Connection")

Ответы [ 21 ]

1 голос
/ 20 августа 2015

Это было упомянуто в комментарии к другому ответу, но я хотел переместить его в фактический ответ, так как это также было проблемой в моем случае, и я бы проголосовал против, если бы это был ответ .

Я нахожусь в Linux, и файл tnsnames.ora не был установлен для чтения всеми. После того, как сделать его читабельным, соединение через tns локально работает.

$ chmod +r tnsnames.ora
1 голос
/ 08 октября 2015

Arrhhh !! Я снова попал в это место !!!

Просто установите ToadForOracle в C: \ или любой каталог без круглых скобок в пути.


В моем случае это потому, что я работал на x64 ПК и все еще использовал старый Oracle 9i с 32-битными драйверами!

Я использую службы отчетов SQL с базой данных Oracle. Проблема заключается в скобках на пути к Visual Studio (BIDS). Oracle не любит приложения, которые начинаются с пути в квадратных скобках:

RDBMS 10g XE проблема с круглыми скобками в пути

Итак, я создал BAT-файл, чтобы открыть Visual Studio с Progra ~ 2 в качестве краткого имени для «Program Files (x86)».

Вот содержимое BAT-файла:

rem Progra~2 is short path name for "Program Files (x86)" and works around an Oracle client bug that doesn't like the ()'s in the path
start /B "C:\Progra~2\Microsoft Visual Studio 9.0\Common7\IDE" "C:\Progra~2\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe"

Я называю этот BAT-файл StartBIDS.BAT и помещаю его в каталог:

"C: \ Program Files \ Microsoft SQL Server \ Start BIDS.bat"

Затем я делаю ярлык для файла BAT на рабочем столе, а также в меню «Пуск» и меняю значок ярлыков. Это позволяет мне открывать приложения TOAD, Visual Studio, BIDS и т. Д., Которые я использую для работы с Oracle.

Обновление:

В качестве альтернативы сделайте соединение:

mklink /J "C:\Program Files (x86)\" "C:\Program Files x86\"

Затем уберите скобки в ярлыке:

enter image description here

0 голосов
/ 06 февраля 2014

Только перезапустите сервисы SID. Например, вы SID name = orcl, тогда все службы, связанные с orcl, должны быть перезапущены, тогда ваша проблема будет решена

0 голосов
/ 10 апреля 2017

Я исправил эту проблему с помощью этих шагов.

Прежде всего, эта ошибка произошла, если вы не установили тот же каталог или диск.

Но ответ здесь.

  1. Вход в систему с правами администратора.
  2. Перейти к панели управления.
  3. Свойства системы и нажмите Окружающая среда
  4. Найти переменную ОС и изменить имя как «TNS_ADMIN»

    enter image description here

  5. И измените значение как «адрес каталога tnsnames» enter image description here

  6. Перезагрузите систему.

  7. Congrulations.
0 голосов
/ 15 декабря 2015

У меня была эта проблема из-за опечатки в имени файла tsnames.ora вместо tnsnames.ora

0 голосов
/ 12 ноября 2015

Если у вас есть 32-битный DSN и 64-битный DSN с одинаковыми именами, Windows автоматически выберет 64-битный, а если ваше приложение 32-битное, то отобразится эта ошибка. Просто следи за этим.

0 голосов
/ 27 августа 2015

У нас также была похожая проблема. Что мы узнали, что мы предоставили несколько псевдонимов для нашей строки подключения в tnsnames.ora, что-то вроде:

svc01, svc02 = (ОПИСАНИЕ = (АДРЕС = (PROTOCOL = TCP) (HOST = xxxx) (порт = 50)) (CONNECT_DATA = (SERVER = DEDICATED) (service_name = yyyysvc.world)))

поэтому при создании соединения с использованием ODBC, когда мы выбирали значение для имени службы TNS, автозаполнение показывало «svc01» (обратите внимание на дополнительную запятую там). Как только мы удалили запятую, она начала работать для нас.

0 голосов
/ 02 октября 2014

В моем случае ошибка в том, что у меня 2 клиента Oracle, это решение:

Ошибка Oracle ORA-12154 на локальном IIS, но не на сервере разработки Visual Studio

0 голосов
/ 30 июля 2014

Мы решили наши проблемы, переустановив Oracle Database Client. Каким-то образом установка не была успешной на 1 из рабочих станций (даже при отсутствии ведения журнала), однако при сравнении размера / файлов / папок каталога Oracle с рабочей клиентской рабочей станцией отсутствовало значительное количество файлов. Как только мы выполнили чистую установку, все заработало отлично.

0 голосов
/ 09 июня 2011

часов проблем решено. Я установил Beta Entity Framework для Oracle и в Visual Studio 2010 MVC 3 проект, на который я ссылался на вкладке .NET Oracle.DataAccess ... Это продолжало давать мне "Oracle ORA-12154: TNS: Не удалось .. ." ошибка. Наконец, я только что перешел к предыдущей установке Oracle в c: \ Oracle \ product ...., используя старую версию dll 10.2.0.100. Наконец-то это работает и сейчас. Надеюсь, это поможет кому-то еще.

...