您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Oracle 9i为什么将空字符串视为NULL?

Oracle 9i为什么将空字符串视为NULL?

我相信答案是甲骨文非常老。

早在sql标准出现以前,Oracle就做出了以下设计决定:VARCHAR/VARCHAR2列中的空字符串是NULL并且只有一种NULL感觉(有一些关系理论家可以区分从未提示过的数据,存在答案但用户不知道的数据,没有答案的数据等,所有这些都构成某种意义上的NULL

sql标准问世并同意NULL并且空字符串是不同的实体时,已经有Oracle用户使用了假定两者相等的代码。因此,Oracle基本上可以选择破坏现有代码,违反sql标准或引入某种初始化参数的选择,这些参数可能会更改潜在大量查询功能在这三个选项中,违反sql标准(IMHO)的破坏最少。

Oracle保留了VARCHAR在将来的版本中更改数据类型以遵守sql标准的可能性(这就是为什么每个人都VARCHAR2在Oracle中使用它的原因,因为该数据类型的行为可以保证将来保持不变)。

Oracle 2022/1/1 18:43:07 有522人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶