如何使Microsoft BCP导出空字符串而不是NUL字符?

mim*_*lea 14 sql t-sql bcp

我正在努力让这个bcp工具以特定的方式工作.-c开关应该使用chars导出,但由于某种原因,在Notepad ++中显示了一个奇怪的char,如果它是UNICODE或其他格式.

我想获取该数据库中的空字符串char,将其作为空字符串导出到文本文件中.你是怎样做的?

mim*_*lea 24

好吧,浏览网页后,这就是我找到的.考虑将其置于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.这将转换为^^值^^^^更多值^^和更多^^所以你得到一个空格而不是NUL字符的双分隔符.

例如:

...
NULLIF(pri.InstanceName, '') as PerformanceInstanceName,
...
Run Code Online (Sandbox Code Playgroud)

希望这有助于某人.