create table test
   ( id number not null primary key,
      name  varchar2(10) default user not null,
     time  date         default sysdate not null
    )没有问题啊,我都建立了

解决方案 »

  1.   

    create table test 
       ( id number not null primary key,
         name  varchar2(10) default user not null,
         time  date         default sysdate not null
       );
    这里错了,name  varchar2(10) default user not null,应该为 name  varchar2(10) default ‘user’ not null,
      

  2.   

    name  varchar2(10) 
    改为
         name  varchar2(30) 
    试试。
      

  3.   

    哦,是我理解错了,对改成30就可以了USER缺省的值是什么呀?为什么要30位。
      

  4.   

    it can be "name  varchar2(50) default user not null"
      

  5.   

    谢谢 tuidler, lianhg, lastdrop,supkim 你们的帮助!
    我试了下.的确能行
    请问: 为什么要改成varchar2(50)呢?
      

  6.   

    为什么要改为varchar2(50)呢?怎么想也想不通,Oracle中的object名称的最大长度为30,用varchar2(30)很合理,但用varchar2(50)就想不通了????
      

  7.   

    我是看了all_users表结构以后,建议改为varchar2(30)的。SQL> desc all_users;
     名称                                      空?      类型
     ----------------------------------------- -------- -------------
     USERNAME                                  NOT NULL VARCHAR2(30)
     USER_ID                                   NOT NULL NUMBER
     CREATED                                   NOT NULL DATE
      

  8.   

    明白了,刚才自己从SELECT USER FROM DUAL;来看的。应该从表结构来看,估计30就够了。
    cxyyq(cxyyq) ,难道改成30还不可以吗。
      

  9.   

    To tuidler:    非常感谢你的帮助!  改成30 就可以了, 是不是我要用登录的用户来自动给这个字段赋值, 两个字段的长度就要保持一致,  对吗 ?
        
      另外: 如果我是用system登录创建的表, 那么用sys登录就无法看到刚才创建的表, 这个问题怎么解决呢?