相关疑难解决方法(0)

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

我知道它确实考虑过'' NULL,但这并没有太多告诉我为什么会这样.据我所知,SQL规范''与NULL- 不一样- 一个是有效数据,另一个是缺少相同的信息.

随意推测,但请说明是否是这种情况.如果甲骨文的任何人都能评论它,那就太棒了!

sql string oracle null

206
推荐指数
4
解决办法
7万
查看次数

Oracle没有区分空值和空字符串?

显然oracle似乎没有区分空字符串和空值.例如

Select name from TABLE_A where id=100;
  ID   NAME
  100  null

Update TABLE_A set NAME='' where id=100;
SELECT -->
  ID   NAME
  100  null

SELECT length(NAME) FROM TABLE_A WHERE id=100;
  null
Run Code Online (Sandbox Code Playgroud)

我想不出有什么理由可以建立Oracle以这种方式运行(它是否也在sqlplus中执行此操作? - 我通过java接口访问,引用的文章使用了php客户端).

难道你至少不想区分0长度和未定义长度吗?这是一个已知的问题?某些特定目的的故意行为?数据库理论中长期存在的争议?是什么赋予了?

(这是Matt Solnit对这个问题的回答.)

database oracle

14
推荐指数
1
解决办法
4354
查看次数

标签 统计

oracle ×2

database ×1

null ×1

sql ×1

string ×1