ALTER TABLE TABLE_TEST ADD TABLE_COLUMN_ONE VARCHAR2(20) NOT NULL DEFAULT '' WITH VALUES;我在看以前公司人写的数据库表管理模块,在为表添加字段时有这么一条SQL,但现在不能执行了.. 
ORA-30649: 缺少 DIRECTORY 关键字

解决方案 »

  1.   

    1.WITH VALUES是什么意思,为什么要加
    2.NOT NULL 和 DEFAULT '' 矛盾吧
      

  2.   

    WITH VALUES 是什么意思.. 我也想知道,, 这条SQL是啥意思.. 这是我想弄明白的
      

  3.   

    ALTER TABLE table_test ADD table_column_one VARCHAR2(20)  DEFAULT '' NOT NULL;
      

  4.   

    里面的引号是什么啊?
    WITH VALUES又是什么意思啊?
      

  5.   


    请教DEFAULT '' NOT NULL什么意思?
      

  6.   

    DEFAULT ''
    表示默认值是空的字符串
    not null表示此字段不允许为null
      

  7.   

    首先,你的语句不能执行是因为当中多了一个字符,在 VARCHAR2(20) 多了一个2,改成VARCHAR(20)
    你的语句的意思是在TABLE_TEST表中添加一个VARCHAR(20)的列,该列不允许为null,
    并且在添加的同时设置一个空串作为默认值,with values的意思就是在创建列的同时给它赋值
    在你的语句中,由于设置了not null和default '',在创建列的时候也会把默认值赋给该列的所有行,
    此时with values就是多余的,如果没有设置not null,with values就会把空串''付给该列所有行,
    此时若少了with values,创建的列的所有行的值都是null,
    不知道说清楚没有