首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle空字符串

Oracle空字符串
EN

Stack Overflow用户
提问于 2009-03-28 04:35:30
回答 3查看 3.6K关注 0票数 7

你们是如何对待Oracle的空字符串的?

语句#1:处理空字符串(例如'')在"varchar2“字段中为NULL。

语句#2:我们有一个定义抽象‘表结构’的模型,其中对于我们有字段,不能为NULL,但是可以是“空”。这个模型适用于各种DBMS;几乎在任何地方,一切都很好,但与Oracle没有关系。您只是不能将空字符串插入“null”字段。

语句#3:在本例中不允许使用非空默认值。

所以,有人能告诉我-我们怎么解决这个问题?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-03-28 04:41:20

这就是为什么我从来不明白为什么Oracle如此受欢迎。他们实际上并不遵循SQL标准,这是基于他们许多年前做出的一个愚蠢的决定。

Oracle 9i SQL引用状态(至少已有三个主要版本):

Oracle当前将长度为零的字符值视为null。但是,在以后的版本中,这种情况可能不会继续存在,Oracle建议您不要将空字符串与空字符串视为空字符串。

但他们没说你该怎么做。我找到的解决这个问题的唯一方法是:

  • 有一个在真实数据中不可能出现的哨位值来表示NULL (例如,姓氏字段的“脱氧核糖核酸”,并希望电影明星不要开始给他们的孩子起奇怪的姓氏和奇怪的名字:-)。
  • 有一个单独的字段来表示第一个字段是否有效,基本上是一个真正的数据库如何处理NULLs。
票数 7
EN

Stack Overflow用户

发布于 2009-03-28 05:27:06

我们是否可以说“在Oracle支持标准SQL行为之前不要支持它”?在许多方面,这似乎是最不痛苦的方式。

如果您不能强制(使用)单个空白,或者可能无法使用Unicode零宽度非中断空间(U+FEFF),那么您可能不得不使用一些难以置信的东西,比如32 Z,以指示数据应该是空白的,但并不是因为所使用的DBMS是Orrible。

票数 3
EN

Stack Overflow用户

发布于 2009-03-29 10:56:56

Oracle中的空字符串和空字符串是相同的。您希望允许空字符串,但不允许空字符串。

您已经在表上放置了NULL约束,这与非空字符串约束相同。如果你取消了这个约束,你会失去什么?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/692202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档