Oracle 9i:为什么 VARCHAR 列中的空字符串等于 NULL
Oracle 9i 将 VARCHAR 列中的空字符串 ('') 处理为 NULL 值是一个历史产物。 早期的 Oracle 版本设计了 VARCHAR 和 VARCHAR2 列,将空字符串解释为相当于 NULL 值。这源于这样的想法:缺失值(空字符串)在功能上与未知值(NULL)相同。
SQL 标准随后定义了 NULL 和空字符串之间的明确区别。 这给 Oracle 带来了一个艰难的选择:通过改变 VARCHAR 列行为来破坏现有应用程序、违反标准,或者以牺牲标准合规性为代价来保持向后兼容性。
Oracle 优先考虑向后兼容性,选择维持 VARCHAR 的现有行为。 为了解决与 SQL 标准的不兼容问题,Oracle 引入了 VARCHAR2,这种数据类型保证在后续版本中遵守标准对 NULL 和空字符串之间的区别。 因此,强烈建议开发人员在新项目中使用 VARCHAR2 并迁移现有代码,以避免将来出现兼容性问题。
以上是为什么 Oracle 9i 的 VARCHAR 列中空字符串被视为 NULL?的详细内容。更多信息请关注PHP中文网其他相关文章!