今天在修改表,往表里面添加了几个字段,一时疏忽将字段类型搞错了。
于是,试了以下几种方法
1、尝试用最传统的sql修改字段类型:
alter table table_name modify column_name column_type;
由于数据仓库中该表的数据特别大(一年的数据,每天有上千万条记录),sql语句执行了好几分钟,都没有出结果。网上搜索了一下modify column大数据会记录redo和undo。为了不对数据仓库造成影响,所以只好停掉该sql。
2、尝试删除字段,再重建,结果出现ORA-39726错误
最后网上找了一下,使用
语句将字段设置成unused,最后再重新创建需要修改的表字段。
由于该方法只是将字段设置成unused,看不到字段,但是在数据字典中,该字段还是存在的。没有深入研究怎么删除oracle数据字典,如有朋友对这方面有研究,请指教。
本文介绍了在Oracle数据库中修改大型表字段类型的挑战及解决方案。作者尝试了直接修改字段类型和删除重建字段的方法,最终采用将字段设为unused再重新创建的方式成功解决了问题。
923

被折叠的 条评论
为什么被折叠?



