我有一個空白表中的列。奇怪的是,它看起來不是空字符串或空字符串。所以,如果我這樣做:Oracle 10g:列是空白的,但不爲空或空字符串
SELECT *
FROM TABLE
WHERE column IS NULL
...或:
SELECT *
FROM TABLE
WHERE column = ''
我什麼也沒得到。思考?
我有一個空白表中的列。奇怪的是,它看起來不是空字符串或空字符串。所以,如果我這樣做:Oracle 10g:列是空白的,但不爲空或空字符串
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
甲骨文得到了空字符串被視爲空一個基本永久的煩惱。但是,你確定這是一個空字符串嗎?它可能是一個不可見的字符,如空格或製表符/換行符/換行符/等等......字符串長度在執行select length(column) from table
時顯示的是什麼?
試試這個:
SELECT *
FROM TABLE
WHERE TRIM(column) IS NULL
如果列不VARCHAR2
但CHAR(N)
然後一個空字符串插入填充。請參見what Tom Kyte tells about this
什麼是列類型? – 2011-01-25 16:51:02
發佈CREATE TABLE語句 - 如果列是CHAR,則空間字符將被分配給CHAR聲明中指定的編號。 – 2011-01-25 16:51:39
是否SELECT * FROM TABLE TRIM(column)=''`返回任何東西? – 2011-01-25 16:54:20