Oracle在表中有数据的情况下修改字段类型或长度的解决方法(oracle修改表的字段)没想到

随心笔谈1年前 (2023)发布 admin
169 0

– 尝试修改
— 修改成功,因为表中无数据
ALTER TABLE TABLE1 MODIFY COL1 NUMBER(10);

— 插入数据
INSERT INTO TABLE1 (COL1, COL2) VALUES (1, ‘test’);

— 再次尝试修改
— 修改失败,因为表中已有数据,不允许直接操作
ALTER TABLE TABLE1 MODIFY COL2 VARCHAR2(20);

— 先缓存表
CREATE TABLE T_TABLE1 AS SELECT * FROM TABLE1;

— 删除原表所有数据
DELETE FROM TABLE1;

— 修改字段
— 修改成功
ALTER TABLE TABLE1 MODIFY COL1 NUMBER(9);
— 修改成功
ALTER TABLE TABLE1 MODIFY COL2 VARCHAR2(20);

— 插入原数据
INSERT INTO TABLE1 SELECT * FROM T_TABLE1;

— 删除缓存表
DROP TABLE T_TABLE1;

© 版权声明

相关文章