全体として、この投稿xp_cmdshell Query Length Too Largeで、xp_cmdshell を使用してクエリ サイズ制限で発生していた問題の修正を得ることができました。私がこのように長いクエリを書いた理由は、別の問題を回避しようとすることでした。bcp は空の文字列を (空の文字列を含むフィールドを含むテーブルから) エンコードされた文字 ('NUL' または 'r',か何か)。これは、エクスポートしたデータを何に使用できるかに影響します。私が持っているエクスポートクエリは
string strBcp = String.Format(
"declare @sql varchar(8000) " +
"select @sql = 'bcp \"SELECT * FROM [{0}]..[ivwTmpDrgDataView];\" ' +" +
"'queryout \"{1}\\DRGData.txt\" -c -t -T -S ' + @@servername " +
"exec master..xp_cmdshell @sql;",
strDatabase,
strDataDir);
これは問題なく動作しますが、エクスポートされたファイル データベースの値は変換されます
NULL -> Empty String (Which is fine!)
Empty String -> Some strange character
C# で .txt ファイルを読み取ってから再コード化できます。「奇妙な文字」を本来あるべき状態、つまり空の文字列に変換する最良の方法は何ですか?
御時間ありがとうございます。