我正在尝试让这个bcp工具以特定方式工作。 -c开关应该使用chars导出,但由于某些原因,在Notepad ++中显示了一个奇怪的char,如果它是UNICODE或其他格式。
我想获取该数据库中的空字符串char,将其作为空字符串导出到文本文件中。你是怎么做到的?
答案 0 :(得分: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字符的双分隔符。
E.g:
...
NULLIF(pri.InstanceName, '') as PerformanceInstanceName,
...
希望这有助于某人。
答案 1 :(得分:0)
只是后续行动......
上面的NULLIF
解决方案在Microsoft SQL中运行良好,但对于几乎适用于任何数据库的更标准化的解决方案,您应该尝试COALESCE
。
语法非常相似:
COALESCE(pri.InstanceName, '') as PerformanceInstanceName