DB2ALTERCOLUMN语句从char到varchar

DB2ALTERCOLUMN语句从char到varchar,db2,Db2,是否可以使用一些db2技巧将列从char类型更改为varchar类型,并修剪右侧的空白 我知道可以将列类型从char更改为varchar(以扩展其大小) 但是db2将左边的空白保留在右边,因此我需要在ALTERTABLE语句之后发出update语句来修剪右边的空白 但我们的表也有4亿条记录,更新语句在时间上有着重要的成本 在阅读了alter table语句的db2文档之后,我也提出了这个问题:似乎不存在允许我同时更改类型和正确修剪值的任何东西。据我所知,不可能按您的要求执行。您考虑过导出和加载替

是否可以使用一些db2技巧将列从char类型更改为varchar类型,并修剪右侧的空白

我知道可以将列类型从char更改为varchar(以扩展其大小) 但是db2将左边的空白保留在右边,因此我需要在ALTERTABLE语句之后发出update语句来修剪右边的空白

但我们的表也有4亿条记录,更新语句在时间上有着重要的成本


在阅读了alter table语句的db2文档之后,我也提出了这个问题:似乎不存在允许我同时更改类型和正确修剪值的任何东西。

据我所知,不可能按您的要求执行。您考虑过导出和加载替换吗?

正如您所说,您可以在更改后进行更新。你现在有空间了。从某种意义上说,您只是对数据做了一点小小的改进。这可能需要一段时间,但如果该进程在后台运行一段时间又有多大关系呢?

执行导出+加载操作会使表大量停机

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


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

这不会比更新需要更长时间吗?在此期间,该表将不可用。所需时间无关紧要。如果能在一次手术中完成,也需要很长时间。它甚至可能会延长表的锁定时间。使用表上方的视图。。。