Oracle SQL 开发人员 ORA-00904 on alter table

Oracle SQL Developer ORA-00904 on alter table

我目前正在尝试更改 Oracle SQL Developer 中现有的 Oracle SQL table。

我想向现有 table 添加一个字段。 该字段不应为空,键入 NVARCHAR(256) 并存储一个简单的字符串 - 不需要外键。

我的 SQL 看起来像这样:

alter table MYTABLE
add column FRUITS NVARCHAR2(256) not null default 'apple';

当我 运行 这个 sql 语句时,我得到以下错误:

Error starting at line : 1 in command -
alter table MYTABLE
add column FRUITS  NVARCHAR2(256) not null default 'apple'
Error report -
ORA-00904: : invalid identifier
00904. 00000 -  "%s: invalid identifier"
*Cause:    
*Action:

你知道如何解决这个错误吗?

错误的语法以及错误的约束顺序。

应该是

alter table MYTABLE
add FRUITS NVARCHAR2(256) default 'apple' not null;

示范:

SQL> create table mytable (id number);

Table created.

SQL> alter table MYTABLE
  2  add column FRUITS NVARCHAR2(256) not null default 'apple';
add column FRUITS NVARCHAR2(256) not null default 'apple'
    *
ERROR at line 2:
ORA-00904: : invalid identifier


SQL> alter table MYTABLE
  2  add FRUITS NVARCHAR2(256) not null default 'apple';
add FRUITS NVARCHAR2(256) not null default 'apple'
                                           *
ERROR at line 2:
ORA-30649: missing DIRECTORY keyword


SQL> alter table MYTABLE
  2  add FRUITS NVARCHAR2(256) default 'apple' not null;

Table altered.

SQL>

现在语法正确了。添加后删除 并在 'apple'

后放置 not null
alter table MYTABLE
add  FRUITS NVARCHAR2(256)  default 'apple' not null;