Oracle資料庫修改資料型別
創建表
CREATE TABLE 學生
(學號 CHAR(18) PRIMARY KEY,
姓名 VARCHAR2(8) NOT NULL,
年齡 CHAR(3) check(年齡>0),
性別 CHAR(2) check (性別='男' or 性別='女'),
班級號 CHAR(20) references 班級(班級號)
);
想要修改學生表,將年齡的資料型別修改為number(2).
ALTER TABLE 學生 MODIFY COLUMN 年齡 number(2) (CHECK>0);
報錯
第 1 行出現錯誤:
ORA-00905: 缺失關鍵字
請問大神們我應該怎么修改
uj5u.com熱心網友回復:
-- 1、通過如下陳述句查出 年齡 列上的約束名稱,以SYS_開頭的
select * from user_constraints
where table_name = '學生' and constraint_type = 'C'
-- 2、先洗掉約束
alter table 學生 drop constraint SYS_CXXXXXXXX;
-- 3、這是你的操作,修改成這個樣子的
ALTER TABLE 學生 MODIFY COLUMN 年齡 number(2) (CHECK>0);
uj5u.com熱心網友回復:
我在解除約束的時候他給我提示 第一行出現錯誤:ORA-00905:確實關鍵字
uj5u.com熱心網友回復:
這三個分開執行,樓主把你的執行程序,截上圖上來。uj5u.com熱心網友回復:
正解是這樣的ALTER TABLE 學生 MODIFY 年齡 number(2) check(年齡>0);
樓主寫的是這樣的
ALTER TABLE 學生 MODIFY COLUMN 年齡 number(2) (CHECK>0);
對比之后發現了沒?條件約束語法寫的有問題。。。。
附上成功修改的截圖
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/16370.html
標籤:基礎和管理
