質問: SqlBulkCopyを使用し、この例外を取得する: > colid 30のbcpクライアントから無効な列長を受け取りました。 > > 私は何時間も頭に頭を叩いていた。どの列に問題があるのか知っていますが、どの列 "colid 30"がわかりません。データテーブルには178の列があります。すべての値が正しいと思われ、データベース内のどの列のデータ型よりも長い値は表示されません。 このデータベースは不動産リストを保有しており、現在は300万件以上のレコードを保有しています。 colid 30の種類を特定する方法はありますか?または、bcpがデータベースに送信している実際のSQLを表示する方法がありますか?
回答: 私はこれがほかの人の問題を解決するのに役立つことを願っています。 エラーは、データテーブルの文字列/ varcharフィールドの1つにセミコロン ";"があるためです。それは価値がある。どうやら挿入をする前に手動でエスケープする必要があります。 私はすべての行/列をループしていました: ``` string.Replace(";", "CHAR(59)"); ``` その後、すべてがスムーズに挿入されました。