正文

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

文章摘要

这篇文章描述了在数据库中进行字段修改的操作过程。首先,尝试修改表中COL1的数据类型为NUMBER(10),修改成功,因为表中无数据。接着插入测试数据。随后尝试修改COL2为VARCHAR2(20),但因表中已存在数据而被拒绝。为解决此问题,作者采用了缓存表的方法:创建临时表T_TABLE1,将原表数据复制过去并删除原表数据。最终,成功修改COL1为NUMBER(9)和COL2为VARCHAR2(20),并恢复原表数据。

– 尝试修改 — 修改成功,因为表中无数据 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;