还是得看字段的类型declare a varchar2(10):='';b char(10):=''; begin if a is null then dbms_output.put_line('A is null'); else dbms_output.put_line('A is not null'); end if; if b is null then dbms_output.put_line('B is null'); else dbms_output.put_line('B is not null'); end if; end; / A is null B is not null
‘’是有值的,而且是字符型
列的初始化值就是NULL,所以没有insert 值的情况下,该列的值就是NULL。NULL 和 ‘ ’是不一样的,如果没有默认值不指定default 属性就ok了。 在Oracle 11g中,在add column时对列的默认值这块功能有增强,具体参考:
Oracle 11g中 ADD COLUMN 功能增强 说明
http://blog.csdn.net/tianlesoftware/article/details/7226893
感觉是不是怕产生行迁移?
但是一个字符也不至于啊。
begin
if a is null then
dbms_output.put_line('A is null');
else dbms_output.put_line('A is not null');
end if;
if b is null then
dbms_output.put_line('B is null');
else dbms_output.put_line('B is not null');
end if;
end;
/
A is null
B is not null