修改列时出现 "ORA-00900: invalid SQL statement" 错误
I get "ORA-00900: invalid SQL statement" error while modifying column
我在 SQL 开发人员中有此代码:
create table course_table
(
course_id number(5) not null,
course_name varchar2(25) not null,
course_hours number(1) not null,
department varchar2(10) not null,
description varchar2(50) not null,
teacher varchar2(20) not null,
create_dttm DATE,
update_dttm TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
user_created varchar2(20) not null,
user_updated varchar2(20) not null
);
commit;
alter table course_table
add CONSTRAINT course_id_pk PRIMARY KEY (course_id);
ALTER TABLE course_table
**ALTER** COLUMN course_id varchar2(5)
粗体字有误。它说
ORA-00900: invalid SQL statement.
谁能帮我看看我做错了什么?
用于修改列的 Oracle 语法是 MODIFY
ALTER TABLE course_table MODIFY course_id varchar2(5);
我相信您使用的是 Sql 服务器语法(即 ALTER TABLE ALTER COLUMN
)
显然这引出了一个问题,为什么您不首先创建具有正确类型的列,以免遇到迁移问题。
总是像这样在 table 中添加 CONSTRAINT
CREATE TABLE COURSE_TABLE
(
COURSE_ID NUMBER(5) NOT NULL,
CONSTRAINT COURSE_TABLE_PK PRIMARY KEY(COURSE_ID)
);
这将解决世界上所有尝试 sql fiddler 或试图修改它的头痛问题。由于您已经知道这将成为主键,因此您不妨从一开始就安装约束。
我在 SQL 开发人员中有此代码:
create table course_table
(
course_id number(5) not null,
course_name varchar2(25) not null,
course_hours number(1) not null,
department varchar2(10) not null,
description varchar2(50) not null,
teacher varchar2(20) not null,
create_dttm DATE,
update_dttm TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
user_created varchar2(20) not null,
user_updated varchar2(20) not null
);
commit;
alter table course_table
add CONSTRAINT course_id_pk PRIMARY KEY (course_id);
ALTER TABLE course_table
**ALTER** COLUMN course_id varchar2(5)
粗体字有误。它说
ORA-00900: invalid SQL statement.
谁能帮我看看我做错了什么?
用于修改列的 Oracle 语法是 MODIFY
ALTER TABLE course_table MODIFY course_id varchar2(5);
我相信您使用的是 Sql 服务器语法(即 ALTER TABLE ALTER COLUMN
)
显然这引出了一个问题,为什么您不首先创建具有正确类型的列,以免遇到迁移问题。
总是像这样在 table 中添加 CONSTRAINT
CREATE TABLE COURSE_TABLE
(
COURSE_ID NUMBER(5) NOT NULL,
CONSTRAINT COURSE_TABLE_PK PRIMARY KEY(COURSE_ID)
);
这将解决世界上所有尝试 sql fiddler 或试图修改它的头痛问题。由于您已经知道这将成为主键,因此您不妨从一开始就安装约束。