2011-01-25 163 views
9

我有一個空白表中的列。奇怪的是,它看起來不是空字符串或空字符串。所以,如果我這樣做:Oracle 10g:列是空白的,但不爲空或空字符串

SELECT * 
    FROM TABLE 
WHERE column IS NULL 

...或:

SELECT * 
    FROM TABLE 
WHERE column = '' 

我什麼也沒得到。思考?

+2

什麼是列類型? – 2011-01-25 16:51:02

+0

發佈CREATE TABLE語句 - 如果列是CHAR,則空間字符將被分配給CHAR聲明中指定的編號。 – 2011-01-25 16:51:39

+1

是否SELECT * FROM TABLE TRIM(column)=''`返回任何東西? – 2011-01-25 16:54:20

回答

15

發出此查詢:

SELECT column, DUMP(column, 1016) 
FROM table 

它會顯示確切內容。

相關:Oracle不允許空字符串;他們悄然轉換爲NULL

14

也許該列只包含空格?

你嘗試

 
select * 
from table 
where trim(column) is null 
3

甲骨文得到了空字符串被視爲空一個基本永久的煩惱。但是,你確定這是一個空字符串嗎?它可能是一個不可見的字符,如空格或製表符/換行符/換行符/等等......字符串長度在執行select length(column) from table時顯示的是什麼?

1

試試這個:

SELECT *  
    FROM TABLE 
WHERE TRIM(column) IS NULL