0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

(Oracle)SQL*Loaderで大量データを投入する方法

Last updated at Posted at 2022-02-13

(Oracle)SQL*Loaderで大量データを投入する方法

テスト環境などに大量データを仕込むときに行う方法。
数百、数千件であればObject BrowserやDMLを使用したほうが楽ですが、
UNDO表領域を使用するため百万件のような大量データを仕込む場合はSQL*Loaderを使用したほうがお勧め。

SQL*LoaderではUNDO表領域を使用しないで直接データを書き込むため、
何百万件のデータも数分で登録することができる。

DB環境

Oracle

準備に必要なもの

  • CTLファイル
  • DATファイル(CSVファイルも可)

CTLファイル

テーブルの情報を記載したファイル。
大量データを登録するテーブルの情報。
※"INFILE"で登録対象のDATファイルを指定。

LOAD DATA
INFILE 'MY_TABLE.DAT'
APPEND
INTO TABLE MY_SCHEMA.MY_TABLE
FILEDS TERMINATED BY ","
TRAILING NULLCOLS
(
  "COLUMN1",
  "COLUMN2",
  "COLUMN3",
  "COLUMN4" DATE "yyyy/mm/dd hh24:mi:ss"
)

DATファイル

DATファイルには実際に登録するデータを記載する。
データはカンマ区切りのためCSVファイルでも可能。

DATA1-1,DATA1-2,DATA1-3,2021/12/11 09:11:54
DATA2-1,DATA2-2,DATA2-3,2021/12/11 09:11:54
DATA3-1,DATA3-2,DATA3-3,2021/12/11 09:11:54

実行方法

CTLファイルとDATファイルを用意したら
以下コマンドを実行する。
※今回はCTLファイルとDATファイルをカレントディレクトリに用意しています。

sqlldr userid=SchemaID/schemaPW@10.11.11.11:1020/schema control=MY_TABLE.CTL log=MY_TABLE.LOG
  • userid=SchemaID/schemaPW@10.11.11.11:1020/schema

    DBの接続情報
  • control=MY_TABLE.CTL

    事前に準備したCTLファイル
  • log=MY_TABLE.LOG

    実行結果
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?