

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\$1Loader
<a name="Oracle.Procedural.Importing.SQLLoader"></a>

Sie können Oracle SQL\$1Loader 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\$1Loader 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](https://www.oracle.com/database/technologies/instant-client.html). Die Dokumentation finden Sie unter [Instant Client for SQL\$1Loader, Export, and Import](https://docs.oracle.com/en/database/oracle/oracle-database/21/sutil/instant-client-sql-loader-export-import.html#GUID-FF1B6F75-09F5-4911-9317-9776FAD15965) im Handbuch *Oracle Database Utilities*.

**So importieren Sie Daten mit Oracle SQL\$1Loader**

1. 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);
   ```

1. 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 von `ALL_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);
   ```

1. Exportieren Sie die Daten aus der Quelldatenbank in eine Textdatei. Im folgenden Beispiel wird SQL\$1Plus 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
   ```

1. 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.

1. Importieren Sie die Daten mit SQL\$1Loader mit dem entsprechenden Benutzernamen und Passwort für die Zieldatenbank. 

   ```
   sqlldr cust_dba@targetdb CONTROL=sqlldr_1.ctl BINDSIZE=10485760 READSIZE=10485760 ROWS=1000 
   ```