Openrowsetを使用するピットを1回記録します

2681 ワード

先日ボスに叱られてOpenrowsetも使えなかったので、ドキュメントを見に行って栗を試してみました~
Openrowsetの具体的な文法は貼らないで、ここを突き刺します:https://msdn.microsoft.com/zh-cn/library/ms190312(v=sql.120).aspx
ドキュメント内のサンプルに従ってテストし、まずドキュメントvaluesを作成します.txt
1    Data 1 For
2    Data 2 For
3    Data 3 Fro

次に、xml以外のフォーマットファイルの書き方スタンプを示すフォーマットファイルv.fmtを作成します.https://msdn.microsoft.com/zh-cn/library/ms191479(v=sql.120).aspx
9.0
2
1 SQLCHAR 0 10 "\t" 1 ID SQL_Latin1_General_CP1_CI_AS
2 SQLCHAR 0 10 "\r
" 2 Desc SQL_Latin1_General_CP1_CI_AS

この2つのドキュメントをDディスクのルートディレクトリの下に置いて実行します.
SELECT * FROM OPENROWSET( BULK 'D:\values.txt',FORMATFILE = 'D:\v.fmt') AS a;

そして、ファイル「D:v.fmt」が不完全だったり、読み込めなかったりして、大容量のロードができないのが萌えました.OSエラーコードは(null)です.
 
それから私は探して探します......肝心なのは间违ったコードがNullが探すことができないのです!!!
最後に...不完全または読み取り不能のため、ファイル権限またはファイル自体の問題が原因であることを確認します.それから私はまず2つのファイルを単行で出力して、すべて正常で、ファイルの権限の問題ではないことを確認します.
そしてもう一つの不完全さ.不完全なこれは、一度だけ改行が少なくて成功しなかったことを思い出して、それから私はfmtファイルの最後に改行を加えました......そして~再実行!!成功した!!!
 
PS:簡単に言わないで、実際に2時間以上デバッグした.