我有一个几乎有20列和至少10亿行的表。如果我将一个列的类型从varchar2(8)更改为varchar2(16)会怎么样?给定列上没有索引、约束或外键。但是我的表有太多的记录。我将使用下面的脚本进行操作:
varchar2(8)
varchar2(16)
ALTER TABLE user MODIFY type VARCHAR2(16);
字符串我已经在我的测试环境中完成了这个操作,但是它没有我的生产环境那么多的记录。
jpfvwuh41#
据我所知,这将是“立即”。它是一个varchar2列,并且只在数据字典中进行更改,表数据根本不受影响。如果它是char,那么是的-这将花费时间,因为这样的列包含右填充空格的数据,直到它的全长,所以你实际上必须扩大列,但也对表执行更新,如果有很多行,这将花费时间。
varchar2
char
1条答案
按热度按时间jpfvwuh41#
据我所知,这将是“立即”。它是一个
varchar2
列,并且只在数据字典中进行更改,表数据根本不受影响。如果它是
char
,那么是的-这将花费时间,因为这样的列包含右填充空格的数据,直到它的全长,所以你实际上必须扩大列,但也对表执行更新,如果有很多行,这将花费时间。