SQL*Loader(sqlldr)サンプル
ロード先テーブル
create table temp_address
(
address_cd varchar(12 char)
,pref_cd varchar(2 char)
,city_cd varchar(5 char)
,town_cd varchar(9 char)
,postal_cd varchar(8 char)
,office_flg integer
,obsolete_flg integer
,prefectures varchar(10 char)
,pref_kana varchar(30 char)
,city varchar(40 char)
,city_kana varchar(60 char)
,town varchar(40 char)
,town_kana varchar(60 char)
,town_sup varchar(60 char)
,kyoto_epithet varchar(60 char)
,section_chome varchar(60 char)
,section_kana varchar(60 char)
,supplement varchar(300 char)
,office_name varchar(300 char)
,office_kana varchar(300 char)
,office_addr varchar(60 char)
,new_address_cd varchar(60 char)
)
;
comment on table temp_address is '住所マスタCSV取込';
comment on column temp_address.address_cd is '住所CD';
comment on column temp_address.pref_cd is '都道府県CD';
comment on column temp_address.city_cd is '市区町村CD';
comment on column temp_address.town_cd is '町域CD';
comment on column temp_address.postal_cd is '郵便番号';
comment on column temp_address.office_flg is '事業所フラグ';
comment on column temp_address.obsolete_flg is '廃止フラグ';
comment on column temp_address.prefectures is '都道府県';
comment on column temp_address.pref_kana is '都道府県カナ';
comment on column temp_address.city is '市区町村';
comment on column temp_address.city_kana is '市区町村カナ';
comment on column temp_address.town is '町域';
comment on column temp_address.town_kana is '町域カナ';
comment on column temp_address.town_sup is '町域補足';
comment on column temp_address.kyoto_epithet is '京都通り名';
comment on column temp_address.section_chome is '字丁目';
comment on column temp_address.section_kana is '字丁目カナ';
comment on column temp_address.supplement is '補足';
comment on column temp_address.office_name is '事業所名';
comment on column temp_address.office_kana is '事業所名カナ';
comment on column temp_address.office_addr is '事業所住所';
comment on column temp_address.new_address_cd is '新住所CD';
コントロール(ctl)ファイル
OPTIONS(ROWS=40000,READSIZE=209715200,BINDSIZE=209715200)
--,BINDSIZE=25600000,READSIZE=104857600
LOAD DATA CHARACTERSET JA16SJIS --- 取込みファイルのエンコードを指定
INFILE "/tmp/csv/zenkoku.csv" -- 取込みファイル名
APPEND -- 既存データに対して追加する場合
INTO TABLE TEMP_ADDRESS -- ロードするテーブル名
FIELDS TERMINATED BY ',' -- カンマ区切り
OPTIONALLY ENCLOSED BY '"' -- ダブルクォートで囲っている場合
TRAILING NULLCOLS -- 列が行中に存在しない場合NULLとして扱う
(
address_cd char(12)
,pref_cd char(2)
,city_cd char(5)
,town_cd char(9)
,postal_cd char(8)
,office_flg integer EXTERNAL
,obsolete_flg integer EXTERNAL
,prefectures char(10)
,pref_kana char(30)
,city char(40)
,city_kana char(60)
,town char(40)
,town_kana char(60)
,town_sup char(60)
,kyoto_epithet char(60)
,section_chome char(60)
,section_kana char(60)
,supplement char(600)
,office_name char(300)
,office_kana char(300)
,office_addr char(120)
,new_address_cd char(60)
)
sqlldrの実行
sqlldr sooni/soopass@vm013/orau8 control=zenkoku.ctl skip=1
実行ログ
$ cat zenkoku.log
SQL*Loader: Release 12.1.0.2.0 - Production on 土 11月 5 00:48:06 2022
Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
制御ファイル: zenkoku.ctl
キャラクタ・セットJA16SJISがすべての入力で指定されています。
データファイル/tmp/csv/zenkoku.csv
不良ファイル: zenkoku.bad
廃棄ファイル: 指定なし
(すべて廃棄できます)
ロード数: ALL
スキップ数: 1
許容エラー数: 50
バインド配列: 40000行、最大209715200バイト
継続文字: 指定なし
使用パス: 従来型
表TEMP_ADDRESS、 ロード済 すべての論理レコードから
この表に対する有効な挿入オプション: APPEND
TRAILING NULLCOLSオプションは有効です。
列名 位置 長さ 用語暗号化データ型
------------------------------ ---------- ----- ---- ---- ---------------------
ADDRESS_CD FIRST 12 , O(")CHARACTER
PREF_CD NEXT 2 , O(")CHARACTER
CITY_CD NEXT 5 , O(")CHARACTER
TOWN_CD NEXT 9 , O(")CHARACTER
POSTAL_CD NEXT 8 , O(")CHARACTER
OFFICE_FLG NEXT * , O(")CHARACTER
OBSOLETE_FLG NEXT * , O(")CHARACTER
PREFECTURES NEXT 10 , O(")CHARACTER
PREF_KANA NEXT 30 , O(")CHARACTER
CITY NEXT 40 , O(")CHARACTER
CITY_KANA NEXT 60 , O(")CHARACTER
TOWN NEXT 40 , O(")CHARACTER
TOWN_KANA NEXT 60 , O(")CHARACTER
TOWN_SUP NEXT 60 , O(")CHARACTER
KYOTO_EPITHET NEXT 60 , O(")CHARACTER
SECTION_CHOME NEXT 60 , O(")CHARACTER
SECTION_KANA NEXT 60 , O(")CHARACTER
SUPPLEMENT NEXT 600 , O(")CHARACTER
OFFICE_NAME NEXT 300 , O(")CHARACTER
OFFICE_KANA NEXT 300 , O(")CHARACTER
OFFICE_ADDR NEXT 120 , O(")CHARACTER
NEW_ADDRESS_CD NEXT 60 , O(")CHARACTER
表TEMP_ADDRESS:
150018行のロードに成功しました。
0行はデータ・エラーのためロードされませんでした。
0行はWHEN句のエラーのためロードされませんでした。
0行はすべてのフィールドがNULLのためロードされませんでした。
バインド配列に割り当てられた領域: 98160000バイト(40000行)
読取りバッファのバイト数: 209715200
スキップされた論理レコードの合計: 1
読み込まれた論理レコードの合計: 150018
拒否された論理レコードの合計: 0
廃棄された論理レコードの合計: 0
実行開始土 11月 05 00:48:06 2022
実行終了土 11月 05 00:48:09 2022
実行時間: 00: 00: 02.83
CPU時間 : 00: 00: 02.66
[oracle@vm013 csv]$