

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengimpor menggunakan Oracle SQL\$1Loader
<a name="Oracle.Procedural.Importing.SQLLoader"></a>

Anda dapat mempertimbangkan Oracle SQL\$1Loader untuk basis data besar yang berisi objek dalam jumlah terbatas. Karena proses pengeksporan dari basis data sumber dan pemuatan ke basis data target spesifik untuk skema, contoh berikut membuat objek skema sampel, mengekspor dari sumber, lalu memuat data ke dalam basis data target. 

Cara termudah untuk menginstal Oracle SQL\$1Loader adalah dengan menginstal Oracle Instant Client. Untuk mengunduh perangkat lunak tersebut, buka [https://www.oracle.com/database/technologies/instant-client.html](https://www.oracle.com/database/technologies/instant-client.html). Dokumentasinya bisa dilihat di [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) dalam manual *Oracle Database Utilities*.

**Cara mengimpor data menggunakan Oracle SQL\$1Loader**

1. Buat tabel sumber sampel menggunakan pernyataan SQL berikut.

   ```
   CREATE TABLE customer_0 TABLESPACE users 
      AS (SELECT ROWNUM id, o.* 
          FROM   ALL_OBJECTS o, ALL_OBJECTS x 
          WHERE  ROWNUM <= 1000000);
   ```

1. Pada instans DB RDS for Oracle target, buat tabel tujuan untuk memuat data. Klausa `WHERE 1=2` memastikan bahwa Anda menyalin struktur `ALL_OBJECTS` tanpa menyalin baris apa pun.

   ```
   CREATE TABLE customer_1 TABLESPACE users 
     AS (SELECT 0 AS ID, OWNER, OBJECT_NAME, CREATED
         FROM   ALL_OBJECTS
         WHERE  1=2);
   ```

1. Ekspor data dari basis data sumber ke file teks. Contoh berikut menggunakan SQL\$1Plus. Untuk data Anda, Anda mungkin perlu membuat skrip yang melakukan ekspor untuk semua objek dalam basis data. 

   ```
   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. Buat file kontrol untuk mendeskripsikan data tersebut. Anda mungkin perlu menulis skrip untuk melakukan langkah ini. 

   ```
   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"
   )
   ```

   Jika perlu, salin file yang dihasilkan oleh kode sebelumnya ke area penahapan, seperti instans Amazon EC2.

1. Impor data menggunakan SQL\$1Loader dengan nama pengguna dan kata sandi yang sesuai untuk basis data target. 

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