db2将列语句从char更改为varchar

时间:2014-05-22 14:42:35

标签: db2

是否可以使用某些db2技巧将列从char类型更改为类型varchar修剪右侧的空格?

我知道可以将列类型从char更改为varchar(以扩展其大小) 但是db2在左边留下了空白区域,所以我需要在alter table语句之后发出一条更新语句来修剪右边的空格。

但是我们的表也有4亿条记录,而且更新声明在时间上有重要的成本。

在我读完alter table语句的db2文档后,我也问过这个问题:似乎确实没有任何东西可以让我改变类型并同时修正这些值。

3 个答案:

答案 0 :(得分:0)

据我所知,不可能按照你的要求去做。您是否考虑过出口和装载更换?

答案 1 :(得分:0)

正如你所说,你可以在ALTER之后进行更新。你现在有空位。从某种意义上说,您只是对数据做了一点改进。这可能需要一段时间,但如果这个过程在后台突然消失了多少呢?

答案 2 :(得分:0)

执行表的导出和加载将导致该表的大量停机时间。

如果您使用对varchar的更改和更新方法,则可以通过在更新X行后提交的复合sql或存储过程中执行更新,来最小化日志和锁定量。

这仍然会运行很长时间,但是锁不会保持那么长时间。