ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文
SQL*Loader ( No.2 )
日時: 2009/07/13 20:18
名前: lightbox



CSV をロードする為の制御ファイル

emp_csv.ctl
 -- 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 ','
)
EMP.csv
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
SQLLDR.EXE 利用方法
使用方法: SQLLDR keyword=value [,keyword=value,...]

有効なキーワード:

    userid -- ORACLE username/password
   control -- Control file name
emp_csv.log

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
制御ファイルにデータを含めるサンプル
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,