2011-11-16 28 views
9

Czy istnieje sposób sprawdzania dwóch baz danych (w jednym zapytaniu) w programie Oracle SQL Developer?Zapytanie o dwie bazy danych za pomocą Oracle SQL Developer

Niezbyt dobrze znam Oracle - poza standardową składnią CRUD w każdym razie.

Próbuję wstawić do tabeli Oracle z tabeli programu SQL Server. Chciałbym zrobić coś takiego:

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

Posiadam (działające) połączenia utworzone dla obu baz danych w Oracle SQL Developer.

Dzięki

--EDIT--

nie mam uprawnień administratora do samych baz danych. (Nie można utworzyć połączonych serwerów itp.)

+0

Czy to jest odczytane z serwera SQL i wstawić do Oracle? – Sathya

+0

Tak (odczyt z SQL-Server i wstaw do Oracle) – Chains

Odpowiedz

10

Tak, jest to możliwe. Połączenia w SQL Developer nie pomogą - będziesz musiał ustawić database link z bazy danych Oracle na bazę danych SQL Server.

Przed utworzeniem linku do bazy danych, musisz skonfigurować heterogenicznym bramę do łączenia się z SQL Server.

kroki ogólne obejmują:

  • Instalacja sterowników Oracle ODBC na serwerze, który będzie dostęp do zdalnej bazy danych SQL Server przy użyciu łącza bazy danych.

  • Konfiguracja połączenia ODBC na lokalnej bazy danych Oracle przy użyciu Windows Administrator źródeł danych ODBC

  • testowe sterowniki ODBC, aby upewnić się, że połączenie jest wykonane na bazie danych SQL Server.

  • Konfiguracja usługi Oracle heterogeniczne Tworząc plik initodbc.ora w bazie danych Oracle.

  • Modyfikowanie pliku 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))) 
    
  • Modyfikacja Tnsnames.ora file zwrócić do bramy

    (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 
        ) 
    
  • Odśwież słuchacza w lokalnej bazie danych Oracle

  • Tworzenie łącza bazy danych na lokalnej instalacji Oracle, który ma dostęp do heterogenicznych połączenia , które z kolei łączą się z SQL Server.

Po utworzeniu łącza bazy danych, powinieneś być w stanie wprowadzić do bazy danych za pomocą prostego:

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

Dalsze czytanie:

2

można odczytać danych z połączenia ODBC przy użyciu heterogenicznego Services. Ustawienie jest jednak trochę kłopotliwe. Musisz edytować kilka plików w instalacji Oracle, aby ustawić nowego odbiornika TNS, a następnie utworzyć dlink w swoim schemacie/globalnym.

This guide jest dla unixa, ale jest najkrótszym/najmniej opóźnionym IMO.

Inną opcją jest przesyłanie danych rurociągiem za pośrednictwem programu innej firmy. Na przykład myślę, że można utworzyć zapytanie w MS Access, a następnie wyeksportować dane do Oracle lub SQL Server.

Powiązane problemy