CSV 形式のデータを制御ファイルに含めています。WHEN には、= のほか != も指定できるようですが不等式はエラーになりました。 BADFILE は、テーブルに適合しないデータが送られますDISCARDFILE は、WHEN に合致しないレコードです TRAILING NULLCOLS があるので、CSV 側で列数が足りなくてもエラーにはなりません NULLIF は、条件が合致すると NULL がセットされます。( DEFAULTIF もあります ) 関連する記事 Oracle : 固定長データのSQL*Loader のサンプル 最終的に、通常データに関数指定ができます ※ 多くは試していませんが TO_DATE(:フィールド)+1 が可能だったので ※ いろいろできる可能性があります
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,
|
【Oracle : 環境の最新記事】
- Oracle : ユーザ(スキーマ)の作成
- Oracle SQLPlus でスキーマの作成
- Oracle 11g 学習環境の作成 : SQLPlus の環境作成
- Oracle に学習用DB の 販売管理C.mdb をインポートする
- Oracle11g をXPモード内でインストールして仮想PCとして複製する
- Oracle11g + Windows : PC名を変更してしまった場合の対処方法
- Oracle : 固定長データのSQL*Loader のサンプル
- Oracle : ローカル・ネーミング・メソッドによる接続( tnsnames.ora を直接変更 )
- リモートのOracle にsysdba で入る
- Oracle : ディレクトリオブジェクト
- 簡易ネーミングメソッドが使え無い