16:34:46 SQL> alter table t modify(ccc default 'ccc');表已更改。已用时间:  00: 00: 00.31
16:35:13 SQL> insert into t(aaa) values(2);已创建 1 行。已用时间:  00: 00: 00.16
16:35:27 SQL> select * from t;AAA        BBB        CCC
---------- ---------- ----------
1          a          x
1          b          x
1          a          y
1          b          y
2                     ccc已用时间:  00: 00: 00.16
16:35:35 SQL> alter table t modify(ccc default null);表已更改。已用时间:  00: 00: 00.16
16:35:51 SQL> insert into t(aaa) values(2);已创建 1 行。已用时间:  00: 00: 00.00
16:35:56 SQL> select * from t;AAA        BBB        CCC
---------- ---------- ----------
1          a          x
1          b          x
1          a          y
1          b          y
2                     ccc
2已选择6行。已用时间:  00: 00: 00.31

解决方案 »

  1.   

    只在SQL*PLUS中才好用吗?别的地方就不行了,比如PB中,STUDIO中都不行
      

  2.   

    应该可以吧,这些执行的也是插入sql语句呀!
      

  3.   

    也许PB中,STUDIO中都向数据库提交的SQL语句都是带有该字段的,而且给了一个NULL值。
    比如提交成 insert into t(aaa,bbb,ccc) values(1,'a',null);
      

  4.   

    应该是起作用的我在 .NET 中做了试验,但是要注意一点,就是默认值只对设置后插入表的数据起作用,而对表中已经存在的数据是不起任何作用的。
      

  5.   

    to jack_4826(天下无双):请问您在PB中或ORACLE DBA Studio中试的吗?
    我没在.net中测试过,不过我在PB中插入数据或在ORACLE的DBA Studio中测试,default就是不起作用(在SQL*PLUS中可以),这个问题令我很困惑,大家不妨在Studio中试一下,
      

  6.   

    alter table t modify(字段 default 值);
      

  7.   

    我刚刚在delphi中测试,没有问题。
      

  8.   

    啊!搞明白了,原来就如nyfor(nyfor) 兄说的那样子。