2015-01-19 4 views
1

У меня есть ссылка DB к удаленному оракулу БД, создание которой скрипторакула не удалось открыть ссылку DB

Create Database Link "DB_LINK_NAME" 
    CONNECT TO "SOURCE_SCHEMA" IDENTIFIED BY VALUES 'XXXXXX' USING 'DB00001'; 

Но я пытаюсь получить доступ к ссылке DB с помощью

select * from [email protected]_LINK_NAME 

я получаю сообщение об ошибке ORA-12154: TNS:could not resolve the connect identifier specified

Я успешно в состоянии сделать tnsping к 'DB00001'

Я попытался как в SQLDeveloper и Sqlplus

+0

Добавьте данные в файл 'tnsnames.ora'. См. Мой ответ. –

ответ

0

Вы должны добавить детали к местному tnsnames.ora файлу.

Например,

DB00001 = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL=TCP)(HOST=hostname)(PORT=port)) 
    (CONNECT_DATA = 
     (SERVER=DEDICATED) 
     (SERVICE_NAME=service_name) 
    ) 
) 

Причина, как правило, описывается как -

подключение к базе данных или другой службы было предложено с помощью о соединении идентификатор и идентификатор подключения указано не может быть разрешен в дескриптор соединения с использованием одного из методов присвоения имен . Например, если используемым типом идентификатора соединения было имя сети netnet , то имя нетто-сервиса не могло быть найдено в репозитории метода имен имен , или репозиторий не мог быть расположен или достигнут .

+0

Уже добавлено. Я смог сделать tnsping для DB00001. –

+0

Является ли TNSNAMES добавлен как опция в NAMES.DIRECTORY_PATH в файле SQLNET.ORA? –

+0

есть. он добавляется. когда я делаю tnsping, я получаю файлы с параметрами: D: \ oracle \ product \ 11.2.0 \ client_1 \ network \ admin \ sqlnet.ora. Мой Tnsnames.ora также находится в том же каталоге –

0

Я считаю, проблема в том, что у вас есть местный tnsnames.ora. В работе вокруг создать ссылку дб следующим образом:

Create Database Link "DB_LINK_NAME" 
 
    CONNECT TO "SOURCE_SCHEMA" IDENTIFIED BY VALUES 'XXXXXX' USING '(DESCRIPTION = 
 
    (ADDRESS = (PROTOCOL=TCP)(HOST=hostname)(PORT=port)) 
 
    (CONNECT_DATA = 
 
     (SERVER=DEDICATED) 
 
     (SERVICE_NAME=service_name) 
 
    ) 
 
)';

Позвольте мне знать, как она идет.

+0

Так я и сделал бы это - не нужно вообще редактировать tnsnames.ora. –

+0

Фрэнк, спасибо за подтверждение. Этот метод всегда работал и на меня. – pksnj

Смежные вопросы