2017-07-06 10 views
0

私のCSVファイルを見て、このどのようにSQLにロード中に.CTLファイルを使用してCSVファイルの空の列をスキップする

111,,Allen,2000,,30 
222,,John,3000,,40 
333,,Miller,4000,,50 
333,,King,5000,,50 

のような空の列が異なる位置に来るかもしれないいくつかの回、 は、我々は、CTLファイルには、何もお勧めできますコンマを区切って空の列だけをスキップできるようにします。

+0

EMP_ID WHEN!思っている? NOT NULL表の列に対してヌルセルを処理するためのオプションがあります。デフォルトでは行が拒否され、不正なファイルに書き込まれます。 – APC

+0

ID、NAME、Sal、Addressの4つのカラムしか持たない私のテーブルを考えてみましょう。しかし、私は上記のような空の列を持っているCSVファイルで、今私の質問は、空の列を削除する方法です(ここで空の列は1つの列として扱われています)。私は動的にctlファイルから空の列を削除したい – srinivas

+1

その行の位置に関係なく、空の列は自動的に無視されますか?それは危険ですね。より良い計画は、信頼できるデータを提供するようにデータソースを修正することです。 – APC

答えて

0

は実際に、私はそれを使ったことがないが、それは私には便利そうです:

LOAD DATA 
INFILE 'name.txt' 
BADFILE 'name.bad' 
DISCARDFILE 'name.dsc' 
APPEND 
INTO TABLE emp_tab 
WHEN emp_id != BLANKS 
FIELDS TERMINATED BY ";" 
TRAILING NULLCOLS 
(emp_id, name, age) 

あなたは何をすべきか行動 "だけ空の列をスキップ" と言うとき= BLANKS

+0

どのようにして列名を決定できますか? – srinivas

関連する問題