Подключение Oracle к SQL Server через ссылку на базу данных
Я пытаюсь подключиться из Oracle 10G(в UNIX) к базе данных SQL Server (в Windows). Я посмотрел на руководство, и я признаю, что нахожу документацию довольно трудно следовать. Кажется, есть несколько вариантов для использования, но ни одна из документации не описывает, как работает каждая опция.
В качестве примера мне была предоставлена следующая информация о базе данных, к которой мне нужно подключиться (то есть база данных SQL Server)
- имя пользователя
- пароль
- Имя базы данных [допустим, имя базы данных - data_extract]
Для подключения выше, я сделал следующие изменения
$ORACLE_HOME/ HS / админ / inithsodbc.ora
HS_FDS_CONNECT_INFO = data_extract
HS_FDS_TRACE_LEVEL = 0
$ORACLE_HOME/ сети / администратор / tnsnames.ora
sqlserver.db =
(DESCRIPTION =
(ADDRESS = (protocol=tcp)(host=10.10.10.10)(port=49400))
(connect_data = (sid=data_extract))
(hs=ok)
)
$ORACLE_HOME/ сети / администратор /listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = merlin)(PORT = 1525))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u/app/oracle/product/10.2.0/db)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = db1.mydb.co.uk)
(ORACLE_HOME = /u/app/oracle/product/10.2.0/db)
(SID_NAME = billdb)
)
(SID_DESC =
(SID_NAME = data_extract)
(ORACLE_HOME = /u/app/oracle/product/10.2.0/db)
(program = hsodbc)
)
)
Примечание. В listener.ora я добавил только последнюю запись SID_DESC.
Затем я продолжил и создал ссылку на базу данных, как показано ниже
create database link sqlservdb using 'sqlserver.db';
Когда я пытаюсь получить доступ к таблице, я получаю следующую ошибку
sqlplus> select * from TESTTABLE@sqlservdb;
select * from TESTTABLE@sqlservdb
*
ERROR at line 1:
ORA-28545: error diagnosed by Net8 when connecting to an agent
Unable to retrieve text of NETWORK/NCR message 65535
ORA-02063: preceding 2 lines from ORASQLSERVER
Пара вещей, в которых я не уверен
- Где я могу указать имя пользователя и пароль для доступа к серверу SQL от базы данных Oracle до базы данных сервера SQL
- Прочитав в Интернете, я вижу, что некоторые люди обращаются к источнику данных DSN. Мне сказали, что информация, которая у меня есть, это все, что мне нужно. Это правильно или мне нужно что-то еще?
- Sid, который я указал в inithsodbc.ora и tnsnames.ora, фактически является базой данных сервера sql. Это правильно?
Любая помощь с вышеупомянутым будет оценена. Спасибо
2 ответа
Я использовал драйверы Data Direct, которые должны были быть настроены на машине Oracle UNIX. Вы должны создать соединение ODBC в UNIX, чтобы иметь возможность видеть SQL Server. (По крайней мере, так было всегда)
Чтобы создать ссылку на базу данных для SQL Server, вы должны заключить имя подключения и пароль в двойные кавычки, как показано ниже:
create database link mysqlink
connect to "myuser" identified by "mypassword" using 'servername';