Oracle 10g: столбец пуст, но не является пустым или пустой строкой - PullRequest
10 голосов
/ 25 января 2011

У меня есть столбец в таблице, который пуст.Странная вещь в том, что она не является пустой или пустой строкой.Итак, если я сделаю это:

SELECT * 
  FROM TABLE 
 WHERE column IS NULL

... или:

SELECT * 
  FROM TABLE 
 WHERE column = ''

, я ничего не получу.Мысли?

Ответы [ 5 ]

16 голосов
/ 25 января 2011

Выполните этот запрос:

SELECT column, DUMP(column, 1016)
FROM table

Он покажет точное содержимое.

Связано: Oracle не допускает пустых строк;они молча преобразуются в NULL.

15 голосов
/ 25 января 2011

Может быть, столбец содержит только пробелы?

Вы пробовали

select * 
from table 
where trim(column) is null
3 голосов
/ 25 января 2011

Oracle испытывает постоянное раздражение, когда пустые строки обрабатываются как null Тем не менее, вы уверены, что это пустая строка? Это может быть невидимый символ, такой как пробел или символ табуляции / перенос строки / перевод строки / и т. Д. Что показывает длина строки при выполнении select length(column) from table?

1 голос
/ 25 января 2011

Если ваш столбец не VARCHAR2, а CHAR(N), то вставка пустой строки дополняется.Смотрите что Том Кайт говорит об этом

1 голос
/ 25 января 2011

Попробуйте это:

SELECT *    
  FROM TABLE   
 WHERE TRIM(column) IS NULL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...