2011-11-16 73 views
9

¿Hay alguna manera de consultar dos bases de datos (en una sola consulta) en Oracle SQL Developer?Consultar dos bases de datos con Oracle SQL Developer

No estoy muy familiarizado con Oracle, aparte de la sintaxis CRUD estándar en cualquier caso.

Estoy tratando de hacer una inserción en una tabla de Oracle desde una tabla de SQL Server. Me gustaría hacer algo como esto:

INSERT INTO OracleDB.table (field1, 2, ...) 
SELECT ... FROM SQLServerDB.schema.table 

Tengo conexiones (de trabajo) creadas para ambas bases de datos en Oracle SQL Developer.

Gracias

--EDIT--

que no tienen privilegios de administrador a las propias bases de datos. (No se pueden crear servidores vinculados, etc.)

+0

¿Se lee esto de SQL Server y se inserta en Oracle? – Sathya

+0

Sí (leer del Servidor SQL e insertar en Oracle) – Chains

Respuesta

10

Sí, eso es posible. Las conexiones en SQL Developer no lo ayudarán; deberá configurar un database link desde su base de datos Oracle a la base de datos de SQL Server.

Antes de crear un enlace de base de datos, tendrá que configurar una puerta de enlace heterogénea para conectarse al servidor SQL.

pasos generales incluyen:

  • instalar los controladores ODBC de Oracle en el servidor que tendrá acceso a la base de datos de SQL Server remota utilizando el enlace de base de datos.

  • Configuración de la conexión ODBC en la base de datos Oracle local mediante el Administrador de orígenes de datos ODBC de Windows

  • la prueba de los conductores de ODBC para garantizar que la conectividad se hace a la base de datos de SQL Server.

  • Configure los servicios Oracle Heterogeneous creando un archivo initodbc.ora dentro de la base de datos Oracle.

  • Modifique el archivo 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))) 
    
  • Modificar la Tnsnames.ora file para que apunte a la puerta de entrada

    (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 
        ) 
    
  • Actualizar al oyente en la base de datos Oracle local

  • Crear un enlace de base de datos de la instalación local de Oracle que tiene acceso a la conexión heterogénea , que, a su vez, se conectan a SQL Server.

Una vez creado el enlace de base de datos, usted debe ser capaz de insertar en la base de datos mediante un simple:

insert into <oracle_tablename> 
select * from <sqlserver_table_name>@dblink_name 

Más información:

2

Puede leer datos de una conexión ODBC utilizando servicios heterogéneos. Aunque es un poco difícil establecerlo. Debe editar varios archivos en la instalación de Oracle para configurar un nuevo TNS Listener y luego crear un dlink dentro de su esquema/global.

This guide es para Unix pero es la más corta/menos retardada de una IMO.

La otra opción es canalizar datos a través de un programa de terceros. Por ejemplo, creo que puede crear una consulta en MS Access y luego exportar los datos a Oracle o SQL Server.

Cuestiones relacionadas