BulkInsertでcsvファイルのエラー行を取得したい
BulkInsertでcsvファイルを取り込みたいのですが、csvファイルのデータに不備があった場合に該当のデータが何行目のデータなのか取得したいです。
前提
SQL Server 2016
発生している問題・エラーメッセージ
csvの不備のあるデータが何件目のデータであろうとERROR_LINE()に2が出力されてしまいます。
これを該当のデータの件数にしたいです。
追記:ERROR_LINE()で出力されてるエラー行数ってSQLの行数ですねこれ
2行目の「BULK INSERT INPUT_TABLE」でエラーが起きてますってことか。。
csvの不備データの行数を取得するのはSQLでは厳しいでしょうか?
SQL
1BEGIN TRY 2 BULK INSERT INPUT_TABLE 3 FROM 'filepath' 4 WITH ( 5 FIRSTROW = 2, 6 FIELDTERMINATOR = ',', 7 DATAFILETYPE = 'widechar' 8 ) 9END TRY 10BEGIN CATCH 11 INSERT INTO ERRORLOG_TABLE( 12 LINE, 13 MESSAGE 14 ) 15 VALUES ( 16 ERROR_LINE() , 17 ERROR_MESSAGE() 18 ) 19END CATCH
csv(1行目はヘッダー)
1主キー,項目1,項目2 2a1,a2,a3 3b1,b2,b3 4c1,c2,c3 5d1,d2,d3 6a1,a2,a3

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。