In un tipico ambiente Oracle, hai nomi TNS impostati. Questo è un servizio per cercare i parametri di connessione per le istanze Oracle a cui è stato assegnato un SID o un nome di servizio. Nella sua forma più semplice, i nomi TNS sono un file chiamato tnsnames.ora
individuato dalla variabile di ambiente TNS_ADMIN
(che punta alla directory in cui si trova il file).
Dati i SID PROD
e SANDBOX
, puoi quindi copiare le tabelle dall'utilità della riga di comando SQLPLUS:
COPY FROM username1/[email protected] to username2/[email protected]
INSERT TABLE_C (*) USING (SELECT * FROM TABLE_C WHERE COL_A = 4884);
Tieni presente che questo comando COPY supporta solo un set limitato di tipi di dati Oracle:char, date, long, varchar2, number.
Se non disponi di nomi TNS impostati, dovrai conoscere il nome host o l'indirizzo IP, il numero di porta e il nome del servizio. La sintassi diventa quindi:
COPY FROM username1/[email protected]//192.168.3.17:1521/PROD_SERVICE to username2/[email protected]//192.168.4.17:1521/SANDBOX_SERVICE
INSERT TABLE_C (*) USING (SELECT * FROM TABLE_C WHERE COL_A = 4884);
Per determinare il SID e/o il nome del servizio, è meglio dare un'occhiata al file TNSNAMES.ORA sul server del database stesso. Se sei in grado di accedere al database, puoi utilizzare le seguenti query per determinare il SID e il nome del servizio (ma non chiedermi quale sia quale):
select name from v$database;
select * from global_name;
select instance_number, instance_name, host_name from v$instance;