0

bcpユーティリティを使用してストアドプロシージャをデバッグするので、一部のデータをファイルにエクスポートしたいと思います。

SQL-Server2005でテストを実行しました

DECLARE @SQL VARCHAR(8000)
SELECT @SQL = 'BCP "SELECT 1" QUERYOUT "D:\test.txt" -C -T'
EXEC MASTER..XP_CMDSHELL @SQL

ファイル「D:\ test.txt」が作成されましたが、空です。
私が間違ったことは何ですか?

4

1 に答える 1

2

同等のコマンドを実行しました:

BCP "SELECT 1" QUERYOUT "c:\junk\test.txt" -C -T

16 進エディタで見るまで、出力は空のファイルのように見えました。16進エディタで私はこれを見ました:01 00 00 00

したがって、数値 1 を整数形式で保存しています。2行目を読みたいと思います:

SELECT @SQL = 'BCP "SELECT '1'" QUERYOUT "D:\test.txt" -C -T'

その場合、メモ帳に 1 が表示されます。16 進エディタでは、次のようになります。01 00 31

'1' は 16 進値 31 の文字列長 1 であるため、文字 1 の ASCII コード。

編集:

-wオプションを使用して、すべての出力に Unicode 文字を使用するよう bcp に指示することもできます。デバッグすると言っているので、おそらくより良いオプションです。

于 2012-12-06T16:33:42.843 に答える