Как подключиться к ссылке на базу данных Oracle напрямую с помощью SQLPLUS - PullRequest
0 голосов
/ 01 июня 2018

Я пробовал каждое из следующих действий, но ни одно из них не работало:

[oracle@localhost]$ sqlplus system/oracle@SID_NAME

[oracle@localhost]$ sqlplus system/oracle@localhost:1521/SID_NAME

[oracle@localhost]$ sqlplus system/oracle@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=localhost)(Port=1521))(CONNECT_DATA=(SID=SID_NAME)))

[oracle@localhost]$ sqlplus "system/oracle@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=localhost)(Port=1521))(CONNECT_DATA=(SID=SID_NAME)))"

Поддерживает ли SQL * Plus прямое соединение с "ссылкой на базу данных Oracle" в начальной командной строке?Если да - как?

SID_NAME не указывает на базу данных, но указывает на "ссылку на базу данных Oracle": https://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_concepts002.htm#i1007709

Я могу запросить ссылку на базу данных Oracle после подключения клокальная база данных Oracle.Локальная база данных Oracle - это место, где была создана ссылка и указывает на удаленную базу данных.Он подключается через ODBC DSN.

Однако меня интересует подключение к ссылке на базу данных Oracle непосредственно в командной строке sqlplus.

Локальный порт базы данных Oracle - 1521.

Я получаю сообщение об ошибке:

ОШИБКА: ORA-01017: неверное имя пользователя / пароль;вход в систему запрещен

Все дело в том, чтобы отладить (GDB) драйвер ODBC.С помощью isql - в командной строке - я могу предоставить ODBC DSN, а когда я запускаю info sharedlibrary в приглашении GDB - я могу видеть мою загруженную библиотеку и, следовательно, отладку.Я заинтересован в том, чтобы загрузить драйвер таким же образом, используя sqlplus.Я не смог увидеть загруженную библиотеку после подключения.Следовательно - пытаясь загрузить библиотеку по начальной команде, как isql.

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

Ответы [ 2 ]

0 голосов
/ 11 июля 2018

SQL Plus общается с удаленной базой данных, используя Oracle DB Link.SQL Plus напрямую не выполняет вызовы ODBC.SQL Plus общается напрямую с базой данных.Базы данных взаимодействуют друг с другом через DB Links, в данном случае Oracle DB Link через «Oracle Heterogene Services (HS)».Драйвер ODBC «никогда» не загружается SQLPlus, поэтому нет способа отладить драйвер с помощью этого метода.Кроме того, база данных, к которой подключается SQLPlus, также не загружает драйвер ODBC.Он использует код OCI / C так же, как SQL Plus для подключения к другой базе данных.

0 голосов
/ 01 июня 2018

Один не подключается к ссылке на базу данных.

Ссылка на базу данных сообщает базе данных A, как добраться до базы данных B.

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

Таким образом, да, SQL * Plus может подключиться.

В вашей строке подключения указано, подключите меня к базе данных с именем SID_NAME, которая работает на МОЕМ компьютеречерез порт № 1521.

В сообщении об ошибке указывается, что комбинация имени пользователя и пароля неверна.Таким образом, вы находитесь на 90% пути - вам просто нужен правильный «ключ», чтобы открыть замок.

...