Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Importieren mit Oracle SQL*Loader
Sie können Oracle SQL*Loader für große Datenbanken mit einer beschränkten Anzahl an Objekten in Betracht ziehen. Da der Vorgang für den Export aus einer Quelldatenbank und das Laden in eine Zieldatenbank genau an das Schema angepasst ist, werden im folgenden Beispiel Schema-Objekte erstellt, aus einer Quelle exportiert und anschließend die Daten in eine Zieldatenbank geladen.
Die einfachste Möglichkeit, Oracle SQL*Loader zu installieren, ist die Installation des Oracle Instant Client. Wenn Sie die Software herunterladen möchten, gehen Sie zu https://www.oracle.com/database/technologies/instant-client.html
So importieren Sie Daten mit Oracle SQL*Loader
-
Erstellen Sie mit der folgenden SQL-Anweisung eine Beispiel-Quelltabelle.
CREATE TABLE customer_0 TABLESPACE users AS (SELECT ROWNUM id, o.* FROM ALL_OBJECTS o, ALL_OBJECTS x WHERE ROWNUM <= 1000000);
-
Erstellen Sie für die Ziel-Instance von RDS für Oracle DB eine Zieltabelle zum Laden der Daten. Die Klausel
WHERE 1=2
stellt sicher, dass Sie die Struktur vonALL_OBJECTS
, aber keine der Zeilen kopieren.CREATE TABLE customer_1 TABLESPACE users AS (SELECT 0 AS ID, OWNER, OBJECT_NAME, CREATED FROM ALL_OBJECTS WHERE 1=2);
-
Exportieren Sie die Daten aus der Quelldatenbank in eine Textdatei. Im folgenden Beispiel wird SQL*Plus verwendet. Für Ihre Daten werden Sie höchstwahrscheinlich ein Skript erstellen müssen, das den Export für alle Objekte in der Datenbank übernimmt.
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
-
Erstellen Sie eine Steuerungsdatei, um die Daten zu beschreiben. Sie müssen eventuell ein Skript schreiben, damit Sie diesen Schritt durchführen können.
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" )
Falls notwendig, kopieren Sie die erstellten Dateien mit dem vorstehenden Code in einen Bereitstellungsbereich, wie zum Beispiel eine Amazon EC2-Instance.
-
Importieren Sie die Daten mit SQL*Loader mit dem entsprechenden Benutzernamen und Passwort für die Zieldatenbank.
sqlldr cust_dba@targetdb CONTROL=sqlldr_1.ctl BINDSIZE=10485760 READSIZE=10485760 ROWS=1000