当前位置: 首页 > 面试题库 >

为什么当列包含空字符串时bcp输出为空,而当列为空字符串时为什么bcp输出为空?

华建同
2023-03-14
问题内容

这让我感到很奇怪,我花了一段时间检查代码中的错误之后才发现这一点。

“将副本从数据库表或视图复制到文件。如果指定现有文件,则该文件将被覆盖。提取数据时,请注意bcp实用程序将空字符串表示为null,并将空字符串表示为空字符串
” (来自http://msdn.microsoft.com/en-
us/library/ms162802.aspx

显然,这可以解决我的问题,但是有人可以想到吗,或者有人知道为什么会这样吗?


问题答案:

已经有一段时间了,但我敢肯定,这是SQL Server 6.5的向后兼容性/旧版本。

SQL Server 6.5无法存储空字符串:总有一个空格。这在SQL 7中已更改

因此'' -> NULL' ' -> ''从古代历史的角度来看,这是正确的。



 类似资料:
  • 问题内容: 当我执行以下代码时,输​​出为“ nullHelloWorld”。Java如何处理null? 问题答案: 您正在尝试将值连接到。这由“字符串转换”控制,当一个操作数是a时发生,该转换被JLS的5.1.11节覆盖: 现在只需要考虑参考值: 如果引用为null,则将其转换为字符串“ null”(四个ASCII字符n,u,l,l)。

  • 问题内容: 是否可以通过SQL语句确保列的默认值为空字符串而不是? 问题答案: 是-使用DEFAULT约束:

  • 问题内容: 我知道它 确实 将’|’视为,但这并不能告诉我 为什么 会这样。据我了解的SQL规范,“ |”与-是一个有效的数据,而另一个则表明缺少相同的信息。 随意推测,但请说明是否是这种情况。如果有Oracle的任何人可以对此发表评论,那就太好了! 问题答案: 我相信答案是甲骨文非常老。 早在SQL标准出现以前,Oracle就做出了以下设计决定:/列中的空字符串是并且只有一种NULL感觉(有一些

  • 问题内容: 我有以下类,它是由Jackson映射的(简化版): 在某些情况下,服务器会返回,然后我想将name设置为空的Java String。 是否有任何Jackson注释,或者如果属性为,我应该只检查getter中的null并返回空字符串? 问题答案: 您可以在默认构造函数中或声明时进行设置: 要么

  • 我有以下由Jackson映射的类(简化版): 在某些情况下,服务器返回,然后我想将name设置为空Java字符串。 是否有任何Jackson注释,或者如果属性为,我应该只检查getter中的null并返回空字符串吗?

  • 问题内容: 例如: 问题答案: 这是因为从索引0 in开始的长度为0的子字符串等于空字符串: 当然,任何字符串的长度为零的 每个 子字符串都等于空字符串。