sql >> Database >  >> RDS >> Oracle

Gegevens kopiëren van de ene database/tabel naar een andere database/tabel

In een typische Oracle-omgeving heb je TNS-namen ingesteld. Dat is een service om de verbindingsparameters voor Oracle-instanties op te zoeken met een SID of servicenaam. In zijn eenvoudigste vorm zijn TNS-namen een bestand met de naam tnsnames.ora gelokaliseerd door de omgevingsvariabele TNS_ADMIN (die verwijst naar de map waar het bestand zich bevindt).

Gezien de SID's PROD en SANDBOX , kunt u de tabellen vervolgens kopiëren vanuit het SQLPLUS-opdrachtregelhulpprogramma:

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

Houd er rekening mee dat dit COPY-commando slechts een beperkte set Oracle-datatypes ondersteunt:char, date, long, varchar2, number.

Als u geen TNS-namen hebt ingesteld, moet u de hostnaam of het IP-adres, het poortnummer en de servicenaam weten. De syntaxis wordt dan:

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

Om de SID en/of servicenaam te bepalen, kijkt u best in het bestand TNSNAMES.ORA op de databaseserver zelf. Als u zich kunt aanmelden bij de database, kunt u de volgende zoekopdrachten gebruiken om de SID en servicenaam te bepalen (maar vraag me niet welke welke is):

select name from v$database;

select * from global_name;

select instance_number, instance_name, host_name from v$instance;


  1. PHP en MySQL:maand en dag vergelijken met dynamisch jaar

  2. Is het gebruik van char als primaire/buitenlandse sleutel een nee nee?

  3. SQL-query om productverkopen per maand te vergelijken

  4. Top Open Source-tools voor MySQL- en MariaDB-migraties