急求!数据库高手帮忙!更改oracle表一个字段的长度。我之前把字段扩长了,现在想减少。

我们数据库有张中间表,所有的数据传输都是先到这张table。
今早我测试程序时,报字段太短,我就把那个字段扩长成了100,原始是20的。测试完后,我想把长的数据清空,再将字段改回原来的20,就不行了。
请问该怎么办呢?
我试过 新增一个长度20字段,把原来字段的数据update到新字段。
然后drop掉旧的长度100的字段,再将新的20的字段该成名为原来那个。
但是这个中间表的访问量很大,一直在用。而且中间表的数据有1千万多。
我drop旧字段,再update新字段名,整个系统就卡死了。

请问高手们,有没有办法能帮我啊!
真的很急!

估计要被投诉了!
T_T 。我错了!为什么oracle字段可以加长,减短回去不行呢,那个字段没有超过20的长度了啊。

如果就用现在这个100的长度,如果中间表的有超过20的数据,转到正式表时候就会报错了。因为我们数据库那个字段都是统一设置的20啊。怎么办啊!

急急急急急急!

你好:如果这个表中字段的值长度已经有超过20的话,那么久无法完成这个操作了,如果没有话,应该是可以直接更改的,
备注:如果这个字段的值为20,结果你插入的数据长度大于20,那么就报错了,所以说,如果没特殊的字段需求的话,就让他保持早100吧,不是百万级数据量,字段长度对数据库的影响不大!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-01-17
把超过20的数据先删了再改