sql >> Database teknologi >  >> RDS >> Oracle

Sådan kopieres data fra en database/tabel til en anden database/tabel

I et typisk Oracle-miljø har du TNS-navne sat op. Det er en tjeneste til at finde forbindelsesparametrene for Oracle-forekomster givet et SID eller tjenestenavn. I sin enkleste form er TNS-navne en fil kaldet tnsnames.ora placeret af miljøvariablen TNS_ADMIN (som peger på den mappe, hvor filen er).

Givet SID'erne PROD og SANDBOX , kan du derefter kopiere tabellerne fra kommandolinjeværktøjet SQLPLUS:

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

Bemærk venligst, at denne COPY-kommando kun understøtter et begrænset sæt Oracle-datatyper:char, date, long, varchar2, number.

Hvis du ikke har konfigureret TNS-navne, skal du kende værtsnavnet eller IP-adressen, portnummeret og tjenestenavnet. Syntaksen bliver så:

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

For at bestemme SID og/eller tjenestenavnet skal du bedst kigge ind i filen TNSNAMES.ORA på selve databaseserveren. Hvis du er i stand til at logge ind på databasen, kan du bruge følgende forespørgsler til at bestemme SID og tjenestenavn (men spørg mig ikke, hvilken der er hvilken):

select name from v$database;

select * from global_name;

select instance_number, instance_name, host_name from v$instance;


  1. Hvordan skriver man Hibernate-kriterier for denne sql-forespørgsel?

  2. mysql oprette trigger syntaks fejl

  3. group_concat og hvordan man bruger rækkenummer i sqlite

  4. Vide, hvordan man gendanner slettet tabel i SQL Server 2012 uden sikkerhedskopiering