alter table INVESTMENT 
modify DENDVALIDDATE DATE DEFAULT NULL

解决方案 »

  1.   

    那岂不是就变成了这样吗?
      DENDVALIDDATE DATE DEFAULT NULL, /* 截止有效期 */
    这不是我想得到的,
    怎么样才能做的到完全消灭它?
      

  2.   

    不设置default 与default NULL 是一样的
    或者说default NULL就是默认值。
      

  3.   

    SQL> desc t;
     名称                                      空?      类型
     ----------------------------------------- -------- --------------
     AAA                                                VARCHAR2(10)
     BBB                                                NUMBERSQL> select defaultval from col where tname ='T';DEFAULTVAL
    ------------------------------------------------------------------
    Null
    已用时间:  00: 00: 00.20
    SQL> alter table t modify aaa default NULL;表已更改。已用时间:  00: 00: 00.60
    SQL> select defaultval from col where tname ='T';DEFAULTVAL
    ------------------------------------------------------------------
    NULL
    已用时间:  00: 00: 00.30
    SQL> alter table t modify aaa default '';表已更改。已用时间:  00: 00: 00.40
    SQL> select defaultval from col where tname ='T';DEFAULTVAL
    ------------------------------------------------------------------
    ''
    已用时间:  00: 00: 00.40
    SQL> 数据字典中的确实没法恢复了,没找到办法。
    :(
      

  4.   

    不过用null没有什么问题。
    SQL> alter table t modify aaa number default 100;表已更改。已用时间:  00: 00: 00.30
    SQL> select defaultval from col where tname ='T';DEFAULTVAL
    --------------------------------------------------------------
    100
    已用时间:  00: 00: 00.30
    SQL> alter table t modify aaa date;
    alter table t modify aaa date
                         *
    ERROR 位于第 1 行:
    ORA-02262: ORA-%05d 出现,此时正在进行默认值表达式的类型检查
    已用时间:  00: 00: 00.50
    SQL> alter table t modify aaa number default null;表已更改。已用时间:  00: 00: 00.41
    SQL> select defaultval from col where tname ='T';DEFAULTVAL
    --------------------------------------------------------------
    null
    已用时间:  00: 00: 00.20
    SQL> alter table t modify aaa date;表已更改。已用时间:  00: 00: 00.90
    SQL> select defaultval from col where tname ='T';DEFAULTVAL
    --------------------------------------------------------------
    null
    已用时间:  00: 00: 00.40
    SQL>