Dans un environnement Oracle typique, vous avez configuré des noms TNS. Il s'agit d'un service permettant de rechercher les paramètres de connexion des instances Oracle à partir d'un SID ou d'un nom de service. Dans sa forme la plus simple, les noms TNS sont un fichier appelé tnsnames.ora
localisé par la variable d'environnement TNS_ADMIN
(qui pointe vers le répertoire où se trouve le fichier).
Étant donné les SID PROD
et SANDBOX
, vous pouvez ensuite copier les tables à partir de l'utilitaire de ligne de commande SQLPLUS :
COPY FROM username1/[email protected] to username2/[email protected]
INSERT TABLE_C (*) USING (SELECT * FROM TABLE_C WHERE COL_A = 4884);
Veuillez noter que cette commande COPY ne prend en charge qu'un ensemble limité de types de données Oracle :char, date, long, varchar2, number.
Si vous n'avez pas configuré de noms TNS, vous devez connaître le nom d'hôte ou l'adresse IP, le numéro de port et le nom du service. La syntaxe devient alors :
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);
Pour déterminer le SID et/ou le nom du service, il est préférable de consulter le fichier TNSNAMES.ORA sur le serveur de base de données lui-même. Si vous parvenez à vous connecter à la base de données, vous pouvez utiliser les requêtes suivantes pour déterminer le SID et le nom du service (mais ne me demandez pas lequel est lequel) :
select name from v$database;
select * from global_name;
select instance_number, instance_name, host_name from v$instance;