ORA-12504: TNS: прослушиватель не получил SERVICE_NAME в CONNECT_DATA

Я пытаюсь подключить свою локальную базу данных Oracle 11g с помощью обозревателя серверов в Visual Studio 2010. Я пытался настроить все в соответствии с инструкциями, но все равно получаю ошибку ORA-12504.

Вот ошибка:

введите здесь описание изображения

Вот мое содержимое tnsnames.ora:

# tnsnames.ora Network Configuration File: C:\app\rsahi\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.


VENUS =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = SPRPRG020)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = VENUS)
    )
  )

LISTENER_VENUS =
  (ADDRESS = (PROTOCOL = TCP)(HOST = SPRPRG020)(PORT = 1521))

содержимое файла listener.ora,

# listener.ora Network Configuration File: C:\app\rsahi\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = SPRPRG020)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = C:\app\rsahi

person Ris    schedule 28.01.2011    source источник


Ответы (5)


Я столкнулся с той же проблемой, когда пытался создать LinkedServer с Oracle 11g. Имя моего экземпляра оракула было: PC-2.my.xgen, а имя моего слушателя было "NB". Последний параметр первого оператора на самом деле является конкатенацией экземпляра сервера Oracle и имени прослушивателя.

Итак, я записал следующие операторы на сервере SQL.

--add a linked server into SQL server
--last parameter contains OracleInstance / Listener Name of desired database
EXEC sp_addlinkedserver   'OracleLinkedServer4', 'Oracle',   'MSDAORA', 'PC-2.my.xgen/nb'

--add login information into linked server
EXEC sp_addlinkedsrvlogin 'OracleLinkedServer4', false,  Null, 'system',  '123456'

В базе данных Oracle "NB" у меня есть таблица с именем: CRD_CIL_NOTIFICATION_TYPE. Поэтому я записал следующее заявление, чтобы получить записи.

select * from OracleLinkedServer4..SYSTEM.CRD_CIL_NOTIFICATION_TYPE
person Mansoor Gee    schedule 29.11.2011

Попробуйте это на панели подключения к данным в Visual Studio Server Explorer:

Data source name: SPRPRG020/VENUS

т. е. формат имени источника данных — ИМЯ_СЕРВЕРА_ИЛИ_IP/ИМЯ_БАЗЫ_ДАННЫХ.

person Rene Luna    schedule 06.06.2012
comment
При использовании служб SSIS в этом совете описывается формат, необходимый в поле «Источник данных» на шаге «Выберите источник данных» в мастере импорта и экспорта SQL Server. - person Paul J; 20.12.2012
comment
Это сработало для меня!!! Я пытался подключиться к базе данных Oracle для создания отчета SSRS. Я уже успешно добавил базу данных в свой VS Server Explorer... так что я решил, что был очень близок. Но я не мог установить соединение как реальный источник данных SSRS .... пока не попробовал то, что предложил @Rena Luna. Я просмотрел строку подключения для моего существующего подключения Server Explorer к базе данных Oracle и заметил, что у него есть IP:порт/‹имя›. Не уверен, что означает часть ‹name›, поскольку я не специалист по Oracle. Поместите это в качестве строки подключения (тип подключения Oracle Db) в моем источнике данных SSRS! - person default_noob_network; 25.04.2018

Не имея особых знаний о подключении ODP.NET к базе данных Oracle, я предлагаю вам начать использовать SERVICE_NAME (например, VENUS) в параметрах подключения.

Оракл утверждает, что:

Начиная с версии 11g функция использования имени хоста, указанного в файле /etc/hosts, в качестве псевдонима/имени службы была изменена. В результате пользователю придется указать имя службы при подключении ИЛИ настроить целевой прослушиватель с именем службы по умолчанию.

Один из способов обойти требование на стороне клиента SERVICE_NAME — заставить прослушиватель всегда отправлять вас на одну и ту же СЛУЖБУ, указав это в файле tnsnames.ora.

DEFAULT_SERVICE_LISTENER =  VENUS

Но я не предлагаю вам делать это, поскольку это довольно ограничивает.

person sokratisg    schedule 02.02.2011

В «Свойствах подключения» -> «Дополнительно» в поле «Источник данных» указать информацию в формате HOST/SERVICE_NAME. Например. 127.0.0.1/ТЕСТ

person BolandT    schedule 27.04.2018

В Свойствах подключения -> Дополнительно задайте в поле Источник данных информацию в формате HOST:PORT/SERVICE_NAME. Например. 10.xxx.xxx.xxx:1521/SIDNAME

person mytkavish    schedule 29.06.2020