Ja, det er muligt. Forbindelser i SQL Developer hjælper dig ikke - du bliver nødt til at konfigurere en databaselink fra din Oracle-database til SQL Server-databasen.
Før du opretter et databaselink, skal du konfigurere en heterogen gateway for at oprette forbindelse til SQL-serveren.
Generelle trin omfatter:
-
Installer Oracle ODBC-drivere på serveren, der får adgang til den eksterne SQL Server-database ved hjælp af databaselinket.
-
Konfigurer ODBC-forbindelsen på den lokale Oracle-database ved hjælp af Windows ODBC-datakildeadministratoren
-
Test ODBC-driverne for at sikre, at der oprettes forbindelse til SQL Server-databasen.
-
Konfigurer Oracle Heterogeneous-tjenesterne ved at oprette en initodbc.ora-fil i Oracle-databasen.
-
Rediger
Listener.ora
fil.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) ) )
-
Rediger filen
Tnsnames.ora file
at pege på gatewayen(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 )
-
Genindlæs lytteren på den lokale Oracle-database
-
Opret et databaselink på den lokale Oracle-installation, der får adgang til den heterogene forbindelse, som igen forbinder til SQL Server.
Når databaselinket er oprettet, bør du være i stand til at indsætte i databasen ved hjælp af et simpelt:
insert into <oracle_tablename>
select * from <sqlserver_table_name>@dblink_name
Yderligere læsning:
- Oracle-dokumentation om heterogen gateway-forbindelse
- Oracle-dokumentation om oprettelse af databaselinks
- Oprettelse af forbindelse fra Oracle til SQL Server (denne er lidt gammel, men meget god, illustreret artikel!)