2017-06-13 3 views
2

csvファイルから一括挿入しようとしました。csvで欠落した列に対してnullを入力するにはどうすればよいですか?

7つの列を持つMY csvファイルですが、テーブルには8つの列が含まれています。

テーブルが8列しかない場合は、以下のクエリで一括挿入を実行できます。

BULK INSERT Table_Name FROM 'E:\file\input.csv' WITH (ROWTERMINATOR = '0x0A',CODEPAGE = 'ACP',FIELDTERMINATOR = ',',KEEPNULLS, ROWS_PER_BATCH = 10000) 

が、私のCSVは、これがエラーの下につながる唯一の7列が含まれています..

Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 1, column 8 (datecolumn). 

は、誰も私FORMATFILEを使用せずにこれを解決する方法を提案することはできますか?

+1

私はこれを行うための方法を発見していないので、それを行うことができるかどうかを学習するために興味があります。私がこれを回避するために行ったことは、ファイルからの挿入のための 'ステージング'テーブルを作成し、それが 'ステージング'テーブルに入ったら残りを実行することです。 – Leonidas199x

答えて

1

7つの列を含むビューを作成し、代わりにそのビューに挿入します。少ない列と

例:

CREATE TABLE test_table(col1 int, col2 int, col3 int) 
go 

CREATE VIEW v_test_table 
as 
SELECT col1, col2 
FROM test_table 

go 

INSERT v_test_table 
SELECT 1,2 

go 

SELECT * FROM test_table 
+0

あなたはテーブルとしてのビューを意味しますか? –

+1

@prabhuは私の答えに例を追加 –

+0

それは完璧に働いてくれたおかげで –

関連する問題