Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Importazione utilizzando Oracle SQL*Loader
Potresti valutare l'opportunità di utilizzare Oracle SQL*Loader per database di grandi dimensioni contenenti un numero limitato di oggetti. Poiché il processo di esportazione da un database di origine e di caricamento in un database di destinazione è specifico dello schema, l'esempio seguente crea gli oggetti dello schema di esempio, li esporta da un'origine e quindi carica i dati in un database di destinazione.
Il modo più semplice per installare Oracle SQL*Loader è installare Oracle Instant Client. Per scaricare il software, vai su https://www.oracle.com/database/technologies/instant-client.html
Per importare dati utilizzando Oracle SQL*Loader
-
Crea una tabella di origine di esempio utilizzando la seguente istruzione SQL.
CREATE TABLE customer_0 TABLESPACE users AS (SELECT ROWNUM id, o.* FROM ALL_OBJECTS o, ALL_OBJECTS x WHERE ROWNUM <= 1000000);
-
Nell'istanza database RDS per Oracle di destinazione, crea una tabella di destinazione per caricare i dati. La clausola
WHERE 1=2
garantisce la copia della struttura diALL_OBJECTS
, ma non delle righe.CREATE TABLE customer_1 TABLESPACE users AS (SELECT 0 AS ID, OWNER, OBJECT_NAME, CREATED FROM ALL_OBJECTS WHERE 1=2);
-
Esporta i dati dal database di origine a un file di testo. L'esempio seguente utilizza SQL*Plus. Per i propri dati, è probabilmente necessario generare uno script che esegue l'esportazione per tutti gli oggetti nel database.
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD HH24:MI:SS' SET LINESIZE 800 HEADING OFF FEEDBACK OFF ARRAY 5000 PAGESIZE 0 SPOOL customer_0.out SET MARKUP HTML PREFORMAT ON SET COLSEP ',' SELECT id, owner, object_name, created FROM customer_0; SPOOL OFF
-
Crea un file di controllo per descrivere i dati. Potrebbe essere necessario scrivere uno script per eseguire questa operazione.
cat << EOF > sqlldr_1.ctl load data infile customer_0.out into table customer_1 APPEND fields terminated by "," optionally enclosed by '"' ( id POSITION(01:10) INTEGER EXTERNAL, owner POSITION(12:41) CHAR, object_name POSITION(43:72) CHAR, created POSITION(74:92) date "YYYY/MM/DD HH24:MI:SS" )
Se necessario, copiare i file generati dal codice precedente in un'area di staging, ad esempio un'istanza Amazon EC2.
-
Importa i dati utilizzando SQL*Loader con il nome utente e la password appropriati per il database di destinazione.
sqlldr cust_dba@targetdb CONTROL=sqlldr_1.ctl BINDSIZE=10485760 READSIZE=10485760 ROWS=1000