Oracle空字符串

你们如何用Oracle处理空字符串?

声明#1:Oracle在“varchar2”字段中将空字符串(例如”)视为NULL.
声明#2:我们有一个定义抽象’表结构’的模型,其中我们有字段,不能为NULL,但可以是“空”.该模型适用于各种DBMS;几乎无处不在,一切都很好,但不是Oracle.您无法将空字符串插入“非空”字段.
声明#3:在我们的情况下不允许非空默认值.

那么,有人会如此友善地告诉我 – 我们如何解决它?

这就是为什么我从未理解为什么Oracle如此受欢迎的原因.基于他们多年前做出的愚蠢决定,他们实际上并没有遵循SQL标准.

Oracle 9i SQL Reference声明(至少有三个主要版本):

Oracle currently treats a character value with a length of zero as null. However,this may not continue to be true in future releases,and Oracle recommends that you do not treat empty strings the same as nulls.

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

>有一个不能在你的真实数据中出现的哨兵值来表示NULL(例如,对于一个姓氏字段的“脱氧核糖核酸”,并希望电影明星不会开始给他们的孩子奇怪的姓氏以及奇怪的名字:-).>有一个单独的字段来指示第一个字段是否有效,基本上是真正的数据库对NULL的作用.

相关文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注