sql >> Base de Datos >  >> RDS >> Oracle

Cómo copiar datos de una base de datos/tabla a otra base de datos/tabla

En un entorno típico de Oracle, tiene configurados nombres TNS. Ese es un servicio para buscar los parámetros de conexión para instancias de Oracle dado un SID o nombre de servicio. En su forma más simple, TNS nombres es un archivo llamado tnsnames.ora ubicado por la variable de entorno TNS_ADMIN (que apunta al directorio donde está el archivo).

Dados los SID PROD y SANDBOX , puede copiar las tablas desde la utilidad de línea de comandos SQLPLUS:

COPY FROM username1/[email protected] to username2/[email protected]
    INSERT TABLE_C (*) USING (SELECT * FROM TABLE_C WHERE COL_A = 4884);

Tenga en cuenta que este comando COPY solo admite un conjunto limitado de tipos de datos de Oracle:char, date, long, varchar2, number.

Si no tiene nombres TNS configurados, necesitará saber el nombre de host o la dirección IP, el número de puerto y el nombre del servicio. La sintaxis entonces se convierte en:

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);

Para determinar el SID y/o el nombre del servicio, es mejor que eche un vistazo al archivo TNSNAMES.ORA en el propio servidor de la base de datos. Si puede iniciar sesión en la base de datos, puede usar las siguientes consultas para determinar el SID y el nombre del servicio (pero no me pregunte cuál es cuál):

select name from v$database;

select * from global_name;

select instance_number, instance_name, host_name from v$instance;