0

これは、SQL Server 2008 でデータを CSV ファイルにエクスポートするために使用している BCP コマンドです。

EXEC master..xp_cmdshell 'BCP "exec ESB_ADT_DB.dbo.ProcTest" queryout "D:\outputfile.csv" -q -T -w -t,'

問題は、テーブルの 1 つの列に xml 文字 (<、>、) が含まれていることです。このデータは、ファイルへの書き込み後に改行文字を追加しています。ファイルに書き込まれたデータに改行文字を追加する bcp コマンドを停止するにはどうすればよいですか。

助けてくれてありがとう。

4

1 に答える 1

0

たまたまストリームを出力する proc でこれを行っているので、BCP コマンドを呼び出す動的 SQL の末尾に -r \0 を追加しました。(-a オプションも追加しましたが、それが何かに影響するかどうかはわかりません。また、コードはもともと -c オプションも付けて書かれていました)。

コマンド文字列は次のようになります。

set @sql='bcp "exec my_xml_proc" QUERYOUT "outputfile.xml" -S サーバー -U ユーザー -P パスワード -c -a 65535 -r \0";

exec @sql;

-r \0 はうまくいったようです。行ターミネータを変更すると、通常の文字 (-r #) を指定したときにドキュメント終了タグの最後に指定された文字を持つ 1 つのストリームが生成されることに気付きましたが、最終用途には整形式の XML ドキュメントが必要なので、変更しました-r \0 に。

于 2013-11-13T00:06:20.530 に答える