日期:2014-05-17  浏览次数:21408 次

oracle表字段的default值设置
oracle表字段的default值设置是设置成null还是' '好些,各有什么用处

------解决方案--------------------
默认值设置成空,有什么意义么??

------解决方案--------------------
看需求吧 但一般多见的是 null

在数据库中,null用来表示实际值未知或无意义的情况
‘’是有值的,而且是字符型
------解决方案--------------------
建议NULL,因为不是所有的类型都可以设置为''的。
------解决方案--------------------

列的初始化值就是NULL,所以没有insert 值的情况下,该列的值就是NULL。

NULL 和 ‘ ’是不一样的,如果没有默认值不指定default 属性就ok了。

 在Oracle 11g中,在add column时对列的默认值这块功能有增强,具体参考:
Oracle 11g中 ADD COLUMN 功能增强 说明
http://blog.csdn.net/tianlesoftware/article/details/7226893


------解决方案--------------------
如果是null的话,是不占存储空间的。如果是'空格',会分配存储空间。
感觉是不是怕产生行迁移?
但是一个字符也不至于啊。
------解决方案--------------------
还是得看字段的类型

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