Запрос двух баз данных с Oracle SQL Developer
есть ли способ запросить две базы данных (в одном запросе) в Oracle SQL Developer?
Я не очень хорошо знаком с Oracle-кроме стандартного синтаксиса CRUD, во всяком случае.
Я пытаюсь сделать вставку в таблицу Oracle из таблицы SQL Server. Хотелось бы сделать что-то вроде этого:
INSERT INTO OracleDB.table (field1, 2, ...)
SELECT ... FROM SQLServerDB.schema.table
У меня есть (рабочие) соединения, созданные для обеих баз данных в Oracle SQL Разработчик.
спасибо
-- EDIT--
У меня нет прав администратора для самих баз данных. (Не удается создать связанные серверы и т. д.)
2 ответов
Да, это возможно. Подключения в SQL Developer вам не помогут - вам придется настроить ссылка на базу данных из базы данных Oracle в базу данных SQL Server.
перед созданием ссылки на базу данных необходимо настроить гетерогенный шлюз для подключения к SQL Server.
общие шаги включают в себя:
установите драйверы Oracle ODBC на сервере, который будет обращаться к удаленной базе данных SQL Server с помощью базы данных ссылка на сайт.
настройка соединения ODBC в локальной базе данных Oracle с помощью администратора источника данных Windows ODBC
Проверьте драйверы ODBC для обеспечения подключения к базе данных SQL Server.
настройте разнородные службы Oracle, создав initodbc.файл ora в базе данных Oracle.
-
изменить
Listener.ora
файл.SID_NAME is the DSN for the remote database. ORACLE_HOME is the actual Oracle home file path. PROGRAM tells Oracle to use heterogeneous services. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME=ora_sid) -- Enter the DSN on this line (ORACLE_HOME = c:\oracle10gdb) -- Enter your Oracle home on this line (PROGRAM = hsodbc) ) )
-
изменить
Tnsnames.ora file
указать на шлюз(DESCRIPTION= (ADDRESS_LIST= (Address=(PROTOCOL=TCP) (HOST= -- (Server x) (PORT=1521))) -- Enter the port on which the server x Oracle installation -- is listening (CONNECT_DATA=(SID=Cas30c)) - Enter the DSN name (HS=OK) -- Enter this value. It tells Oracle to use hetergeneous services )
перезагрузите прослушиватель в локальной базе данных Oracle
создайте ссылку на базу данных в локальной установке Oracle, которая обращается к гетерогенному соединению, которое, в свою очередь, подключается к SQL Server.
после создания ссылки на базу данных вы сможете вставить ее в базу данных с помощью просто:
insert into <oracle_tablename>
select * from <sqlserver_table_name>@dblink_name
читайте далее:
- документация Oracle на гетерогенной связи шлюза
- документация Oracle о создании ссылок на базы данных
- подключение от Oracle до SQL Server (это немного старая, но очень хорошая, иллюстрированная статья!)
вы можете считывать данные из соединения ODBC, используя гетерогенные службы. Это немного больно, чтобы настроить хотя. Вы должны отредактировать несколько файлов в Oracle install, чтобы настроить новый прослушиватель TNS, а затем создать dlink в вашей схеме/global.
данное руководство для unix, но является самым коротким / наименее отсталым ИМО.
другой вариант-передавать данные через стороннюю программу. Например, я думаю, вы можете создать запрос в MS Access, а затем экспортировать данные для Oracle или SQL Server.