Rick,
Sorry, I wouldn't be able to sleep tonight if I let you off without refuting your statement, "...There are, in my view, conflicting rules on data interpretation here." There is no difference in DATA (DATA, DATA, DATA, DATA) between "Null" and [ '' ] since both represent a zero-length, lack of bits. The difference you see is in SYNTAX, (SYNTAX, SYNTAX). Your example, "SELECT * FROM DEPT WHERE LOC = '';" produces identical results to "SELECT * FROM DEPT WHERE LOC = NULL;" (No rows selected). "SELECT * FROM DEPT WHERE LOC IS NULL;" would produce the same results as "SELECT * FROM DEPT WHERE LOC IS '';" if Oracle allowed that syntax, but the only word that can follow "IS" in a WHERE clause is "NULL".
Now I can go to sleep and hopefully you can rest easier that NULL and '' represent the same lack of data.
Cheers,
Dave
Sandy, Utah, USA @ 06:47 GMT, 23:47 Mountain Time