15

私は、この bcp ツールを特定の方法で動作させるために作業していました。-c スイッチは文字を使用してエクスポートすることになっていますが、何らかの理由で、UNICODE またはその他のフォーマットであるかのように、Notepad++ に奇妙な文字が表示されていました。

データベース内の空の文字列である char を取得して、空の文字列としてテキスト ファイルにエクスポートしたいと考えていました。どうやってそれをしますか?

4

2 に答える 2

26

さて、ネットでいろいろ調べていたらこんなものを見つけました。より多くの人がアクセスできるように、SOに配置することを考えました。

http://www.techtalkz.com/microsoft-sql-server/147106-how-export-empty-strings-via-bcp.html

しかし、bcp を実行すると、空の文字列が ASCII の「NUL」文字 (0x0) を使用してテキスト ファイルに書き込まれます。代わりに、フィールドを空白 (0x20) で埋める必要があります。

解決:

テキスト ファイルでは、データを一括で入力すると、空の文字列が NULL として解釈されます。NUL 文字は空の文字列として解釈されるため、一貫性があります。しかし、データを別のシステムにエクスポートしている場合、それはあまり役に立ちません....

NULLIFデータベースで空である可能性があるそのフィールドをラップして、それをキャッチ''して に置き換えるだけNULLです。これは ^^values^^^^more values^^and more^^ に変換されるため、NUL 文字の代わりに空白を使用して二重セパレーターが得られます。

例えば:

...
NULLIF(pri.InstanceName, '') as PerformanceInstanceName,
...

これが誰かに役立つことを願っています。

于 2012-09-25T17:31:39.643 に答える
1

フォローアップだけ...

上記のNULLIFソリューションは Microsoft SQL で問題なく機能しますが、ほぼすべてのデータベースで機能するより標準化されたソリューションを試す必要がありますCOALESCE

構文は非常に似ています。

COALESCE(pri.InstanceName, '') as PerformanceInstanceName
于 2015-02-06T17:04:38.383 に答える