c# - BCP Export 自动将空字符串转换为 NUL

标签 c# encoding bcp xp-cmdshell

所有,在这篇文章中xp_cmdshell Query Length Too Large我设法使用 xp_cmdshell 解决了查询大小限制问题。我编写这么长的查询的原因是试图解决另一个问题,事实上 bcp 似乎将空字符串(来自包含空字符串字段的表)转换为某些编码字符('NUL' 或 'r',或者其他的东西)。这影响了我可以使用导出的数据。我的导出查询是

string strBcp = String.Format(
    "declare @sql varchar(8000) " +
    "select @sql = 'bcp \"SELECT * FROM [{0}]..[ivwTmpDrgDataView];\" ' +" +
    "'queryout \"{1}\\DRGData.txt\" -c -t -T -S ' + @@servername " +
    "exec master..xp_cmdshell @sql;",
    strDatabase,
    strDataDir);

这工作正常,但在导出的文件中数据库值被转换

NULL -> Empty String (Which is fine!)
Empty String -> Some strange character

我可以使用 C# 读取 .txt 文件,然后重新编码 - 将“奇怪字符”转换回应有的空字符串的最佳方法是什么?

感谢您的宝贵时间。

最佳答案

这是设计使然,如果 bcp 将 null 和空字符串转换为相同的输出(假设为空字符串),那么以后将无法消除它们的歧义。

关于c# - BCP Export 自动将空字符串转换为 NUL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10999808/

相关文章:

c# - 如何将 JavaScript 错误从操作传递到 View ?

mysql - Erlang emysql iPhone 表情符号编码问题

python - 用于 u""文字的编码

sql-server-2005 - 使用 BCP 实用程序创建的 bcp 格式文件去哪里了?

sql-server - 我如何将命令传递给 sqsh 并一次性将输出输出到文件?

c# - 自定义,复杂的动态反射解决方案-C#

c# - 如何使用 DataAnnotations 检查属性是否仅匹配字符串数组

sql - 优化对不相关表的大量插入

c# - GoogleWebAuthorizationBroker.AuthorizeAsync 登台服务器失败

c# - 此算法的 base64 编码盐/密码的最大长度