繁体   English   中英

Oracle 10g:列为空,但不为null或为空字符串

[英]Oracle 10g: column is blank, but is not null or an empty string

我的表中的列是空白的。 奇怪的是它似乎不是null或空字符串。 所以,如果我这样做:

SELECT * 
  FROM TABLE 
 WHERE column IS NULL

...要么:

SELECT * 
  FROM TABLE 
 WHERE column = ''

我一无所获。 思考?

发出此查询:

SELECT column, DUMP(column, 1016)
FROM table

它会显示确切的内容。

相关:Oracle不允许空字符串; 它们默默地转换为NULL

列可能只包含空格?

你试过了吗

select * 
from table 
where trim(column) is null

Oracle基本上是一个永久的烦恼,空字符串被视为null。 但是,你确定这是一个空字符串吗? 它可能是一个不可见的字符,例如空格或制表符/换行符/换行符等等...当您select length(column) from table时,字符串长度会显示什么?

试试这个:

SELECT *    
  FROM TABLE   
 WHERE TRIM(column) IS NULL

如果您的列不是VARCHAR2而是CHAR(N)则填充空字符串的插入。 看看Tom Kyte讲述了什么

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM