你的bbb字段可能是not null型的或者你的建表语句错误

解决方案 »

  1.   

    是不是你的insert into 语句中包含了bbb字段?insert into yourtable (aaa, bbb ) values ('a',NULL);这样是不行的,只有当插入语句中未包含bbb字段时,Oracle才会使用默认值。
      

  2.   

    bbb字段是not null的
    我没有用sql语句而是在表里直接插入的
      

  3.   

    SQL> create table cc(a varchar2(10),b varchar2(10) default 'ccc' not null);Table createdSQL> insert into cc values('aaa');insert into cc values('aaa')ORA-00947: 没有足够的值那好像达不到要求
    强要加一个default值,那只好加一个触发器
    一:
    把表修改为
    create table cc(a varchar2(10),b varchar2(10) not null);
    二:
    create trigger name_tri 
    before insert on cc
    for each row
    begin
    if :new.b is null then
    :new.b:='ccc';
    end if;
    end;
    /
      

  4.   

    我觉得不需要触发器的,因为我现在有张表就是这样创建的,使用的是默认值,业为not null,很正常啊。
      

  5.   

    "我没有用sql语句而是在表里直接插入的"那你是怎么直接插入的?是通过程序吧?那程序是不是自动加了NULL这个值呢?