コメント |
@C:red(CSV をロードする為の制御ファイル)
[[emp_csv.ctl]]
@DIV
-- This is a sample control file
LOAD DATA
INFILE 'EMP.csv'
BADFILE 'sample.bad'
DISCARDFILE 'sample.dsc'
APPEND
INTO TABLE LODER_EMP
TRAILING NULLCOLS
(
EMPNO INTEGER EXTERNAL TERMINATED BY ','
,ENAME CHAR TERMINATED BY ',' NULLIF job=BLANKS
,JOB CHAR TERMINATED BY ',' NULLIF job=BLANKS
,MGR INTEGER EXTERNAL TERMINATED BY ','
,HIREDATE CHAR TERMINATED BY ',' "TO_DATE(:HIREDATE)"
,SAL INTEGER EXTERNAL TERMINATED BY ',' "TO_NUMBER(:SAL)"
,COMM INTEGER EXTERNAL TERMINATED BY ','
,DEPTNO INTEGER EXTERNAL TERMINATED BY ','
)
@END
[[EMP.csv]]
@DIV
7369,SMITH,CLERK,7902,80-12-17,800,,20
7499,ALLEN,SALESMAN,7698,81-02-20,1600,300,30
7521,WARD,SALESMAN,7698,81-02-22,1250,500,30
7566,JONES,MANAGER,7839,81-04-02,2975,,20
7654,MARTIN,SALESMAN,7698,81-09-28,1250,1400,30
7698,BLAKE,MANAGER,7839,81-05-01,2850,,30
7782,CLARK,MANAGER,7839,81-06-09,2450,,10
7788,SCOTT,ANALYST,7566,87-04-19,3000,,20
7839,KING,PRESIDENT,,81-11-17,5000,,10
7844,TURNER,SALESMAN,7698,81-09-08,1500,0,30
7876,ADAMS,CLERK,7788,87-05-23,1100,,20
7900,JAMES,CLERK,7698,81-12-03,950,,30
7902,FORD,ANALYST,7566,81-12-03,3000,,20
7934,MILLER,CLERK,7782,82-01-23,1300,,10
@END
[[SQLLDR.EXE 利用方法]]
@DIV
使用方法: SQLLDR keyword=value [,keyword=value,...]
有効なキーワード:
userid -- ORACLE username/password
control -- Control file name
@END
[[emp_csv.log]]
@DIV
SQL*Loader: Release 10.2.0.1.0 - Production on 金 6月 8 16:55:24 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
制御ファイル: emp_csv.ctl
データファイルEMP.csv
不良ファイル: sample.bad
廃棄ファイル: sample.dsc
(すべて廃棄できます)
ロード数: ALL
スキップ数: 0
許容エラー数: 50
バインド配列: 64行、最大256000バイト
継続文字: 指定なし
使用パス: 従来型
表LODER_EMP、 ロード済 すべての論理レコードから
この表に対する有効な挿入オプション: APPEND
TRAILING NULLCOLSオプションは有効です。
Column Name Position Len Term Encl Datatype
------------------------------ ---------- ----- ---- ---- ---------------------
EMPNO FIRST * , CHARACTER
ENAME NEXT * , CHARACTER
NULL if JOB = BLANKS
JOB NEXT * , CHARACTER
NULL if JOB = BLANKS
MGR NEXT * , CHARACTER
HIREDATE NEXT * , CHARACTER
列のSQL文字列 : "TO_DATE(:HIREDATE)"
SAL NEXT * , CHARACTER
列のSQL文字列 : "TO_NUMBER(:SAL)"
COMM NEXT * , CHARACTER
DEPTNO NEXT * , CHARACTER
表LODER_EMP:
14行のロードに成功しました。
0行はデータ・エラーのためロードされませんでした。
0行はWHEN句のエラーのためロードされませんでした。
0行はすべてのフィールドがNULLのためロードされませんでした。
バインド配列に割り当てられた領域: 132096バイト(64行)
読取りバッファのバイト数: 1048576
スキップされた論理レコードの合計: 0
読み込まれた論理レコードの合計: 14
拒否された論理レコードの合計: 0
廃棄された論理レコードの合計: 0
実行開始金 6月 08 16:55:24 2007
実行終了金 6月 08 16:55:24 2007
実行時間: 00: 00: 00.14
CPU時間 : 00: 00: 00.09
@END
[[制御ファイルにデータを含めるサンプル]]
@DIV
LOAD DATA
INFILE *
-- **************************************************
-- BADFILE : 拒否レコード
-- **************************************************
BADFILE 'lightbox.bad'
-- **************************************************
-- DISCARDFILE : 廃棄ファイル
-- **************************************************
DISCARDFILE 'lightbox.dsc'
-- **************************************************
-- APPEND : 追加
-- REPLACE : 削除後追加( 削除トリガーが起動 )
-- TRUNCATE : TRUNCATE 後追加( 最大限のパフォーマンス )
-- **************************************************
APPEND
INTO TABLE "社員マスタ2"
WHEN "社員コード" != '0005'
-- **************************************************
-- ■ TRAILING NULLCOLS
-- 相対位置に指定した列がレコード中に存在しない場合
--その列の値はNULLとして処理されます
-- **************************************************
TRAILING NULLCOLS
--
--
--create table "社員マスタ2" (
-- "社員コード" VARCHAR2(4)
-- ,"氏名" VARCHAR2(50)
-- ,"フリガナ" VARCHAR2(50)
-- ,"所属" VARCHAR2(4)
-- ,"性別" NUMBER(15)
-- ,"作成日" DATE
-- ,"更新日" DATE
-- ,"給与" NUMBER
-- ,"手当" NUMBER
-- ,"管理者" VARCHAR2(4)
-- ,"生年月日" DATE
--)
--
--
(
"社員コード" CHAR TERMINATED BY ','
,"氏名" CHAR TERMINATED BY ',' NULLIF "氏名"=BLANKS
,"フリガナ" CHAR TERMINATED BY ',' NULLIF "フリガナ"=BLANKS
,"所属" CHAR TERMINATED BY ',' NULLIF "所属"=BLANKS
,"性別" INTEGER EXTERNAL TERMINATED BY ','
,"作成日" CHAR TERMINATED BY ',' NULLIF "作成日"='//' "TO_DATE(:\"更新日\")+1"
,"更新日" CHAR TERMINATED BY ',' NULLIF "作成日"='//' "TO_DATE(:\"更新日\")+1"
,"給与" INTEGER EXTERNAL TERMINATED BY ','
,"手当" INTEGER EXTERNAL TERMINATED BY ','
,"管理者" CHAR TERMINATED BY ',' NULLIF "管理者"=BLANKS
,"生年月日" CHAR TERMINATED BY ',' "TO_DATE(:\"生年月日\")"
)
BEGINDATA
0001,浦岡 友也,
00002,山村 洋代,ヤマムラ ヒロヨ,0003,1,2005/06/17,2005/09/18,300000,,,
0003,多岡 冬行,タオカ フユユキ,0002,0,2005/08/14,2005/11/14,250000,,,
0004,高田 冬美,タカタ フユミ,0003,1,//,//,250000,,,
0005,内高 友之,ウチタカ トモユキ,0003,0,2005/09/12,2005/11/10,150000,,,
0006,森尾 正也,モリオ マサヤ,0002,0,2005/08/14,2005/12/17,300000,7000,0002,
@END
|