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

发布于 2024-10-14 12:44:14 字数 225 浏览 2 评论 0原文

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

SELECT * 
  FROM TABLE 
 WHERE column IS NULL

……或者:

SELECT * 
  FROM TABLE 
 WHERE column = ''

我什么也得不到。想法?

I have a column in a table that is blank. The weird thing is that it does not appear to be null or an empty string. So, if I do this:

SELECT * 
  FROM TABLE 
 WHERE column IS NULL

...or:

SELECT * 
  FROM TABLE 
 WHERE column = ''

I get nothing. Thoughts?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

Spring初心 2024-10-21 12:44:14

发出此查询:

SELECT column, DUMP(column, 1016)
FROM table

它将显示确切的内容。

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

Issue this query:

SELECT column, DUMP(column, 1016)
FROM table

It'll show the exact contents.

Related: Oracle does not allow empty strings; they're silently converted to NULL.

抹茶夏天i‖ 2024-10-21 12:44:14

也许该列只包含空格?

你尝试过吗

select * 
from table 
where trim(column) is null

Maybe the column contains only spaces?

Did you try

select * 
from table 
where trim(column) is null
月依秋水 2024-10-21 12:44:14

Oracle 有一个基本上永久的烦恼,即空字符串被视为 null。但是,您确定这是一个空字符串吗?它可能是其他不可见的字符,例如空格或制表符/换行符/换行符/等等...当您从表中选择长度(列)时,字符串长度显示什么?

Oracle's got a basically permanent annoyance that empty strings are treated as null. However, are you sure that's an empty string? It could be an otherwise invisible character, such as a space or tab/linebreak/linefeed/etc... What does the string length show when you do select length(column) from table?

软的没边 2024-10-21 12:44:14

试试这个:

SELECT *    
  FROM TABLE   
 WHERE TRIM(column) IS NULL

Try this:

SELECT *    
  FROM TABLE   
 WHERE TRIM(column) IS NULL
小嗲 2024-10-21 12:44:14

如果您的列不是 VARCHAR2 而是 CHAR(N),则将填充空字符串的插入。请参阅 Tom Kyte 讲述的内容关于这个

If your column is not VARCHAR2 but CHAR(N) then insertion of an empty string is padded. See what Tom Kyte tells about this

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文