你们是如何对待Oracle的空字符串的?
语句#1:处理空字符串(例如'')在"varchar2“字段中为NULL。
语句#2:我们有一个定义抽象‘表结构’的模型,其中对于我们有字段,不能为NULL,但是可以是“空”。这个模型适用于各种DBMS;几乎在任何地方,一切都很好,但与Oracle没有关系。您只是不能将空字符串插入“null”字段。
语句#3:在本例中不允许使用非空默认值。
所以,有人能告诉我-我们怎么解决这个问题?
发布于 2009-03-28 04:41:20
这就是为什么我从来不明白为什么Oracle如此受欢迎。他们实际上并不遵循SQL标准,这是基于他们许多年前做出的一个愚蠢的决定。
Oracle 9i SQL引用状态(至少已有三个主要版本):
Oracle当前将长度为零的字符值视为null。但是,在以后的版本中,这种情况可能不会继续存在,Oracle建议您不要将空字符串与空字符串视为空字符串。
但他们没说你该怎么做。我找到的解决这个问题的唯一方法是:
发布于 2009-03-28 05:27:06
我们是否可以说“在Oracle支持标准SQL行为之前不要支持它”?在许多方面,这似乎是最不痛苦的方式。
如果您不能强制(使用)单个空白,或者可能无法使用Unicode零宽度非中断空间(U+FEFF),那么您可能不得不使用一些难以置信的东西,比如32 Z,以指示数据应该是空白的,但并不是因为所使用的DBMS是Orrible。
发布于 2009-03-29 10:56:56
Oracle中的空字符串和空字符串是相同的。您希望允许空字符串,但不允许空字符串。
您已经在表上放置了NULL约束,这与非空字符串约束相同。如果你取消了这个约束,你会失去什么?
https://stackoverflow.com/questions/692202
复制相似问题