是不是你的insert into 语句中包含了bbb字段?insert into yourtable (aaa, bbb ) values ('a',NULL);这样是不行的,只有当插入语句中未包含bbb字段时,Oracle才会使用默认值。
bbb字段是not null的 我没有用sql语句而是在表里直接插入的
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; /
我没有用sql语句而是在表里直接插入的
强要加一个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;
/