Запрос двух баз данных с 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

читайте далее:


вы можете считывать данные из соединения ODBC, используя гетерогенные службы. Это немного больно, чтобы настроить хотя. Вы должны отредактировать несколько файлов в Oracle install, чтобы настроить новый прослушиватель TNS, а затем создать dlink в вашей схеме/global.

данное руководство для unix, но является самым коротким / наименее отсталым ИМО.

другой вариант-передавать данные через стороннюю программу. Например, я думаю, вы можете создать запрос в MS Access, а затем экспортировать данные для Oracle или SQL Server.