DB2需要有关alter table alter column set数据类型的帮助

Man*_*noj 6 sql db2

我需要将列的数据类型更改VARCHARDECIMAL

我在列中有数据,但它们都是数字值10.00, 25.50等,

现在当我做alter table MY_TABLE alter column COL1 set data type to decimal(11,2)它的失败.

什么是我可以遵循的过程.

我敢肯定这不是一个新问题,但我找不到解决方案,所以不要嘲笑我的脑子,我在这里问.

apo*_*fos 4

语法是 ALTER TABLE {tableName} MODIFY {Column-Name} {New-Column-Definition} IEALTER TABLE MY_TABLE MODIFY COL1 DECIMAL(11,2)

一般来说,这(改变列数据类型)不会将现有数据转换为新类型,并且可能会将不兼容的值设置为 NULL(或者它可能会进行智能转换,这几乎是 DBMS 服务器特定的)

如果数据量不是太大的话可以这样做

ALTER TABLE MY_TABLE ADD COLUMN Temporary decimal(11,2);
UPDATE MY_TABLE SET Temporary=CAST(COL1 AS DECIMAL(11,2));
ALTER TABLE MY_TABLE DROP COLUMN COL1;
ALTER TABLE MY_TABLE  CHANGE Temporary COL1 decimal(11,2);
Run Code Online (Sandbox Code Playgroud)

编辑:第一部分可能不正确