Db2 &引用;为列指定的属性与现有列定义不兼容;

Db2 &引用;为列指定的属性与现有列定义不兼容;,db2,Db2,已经有一段时间了 使用DB210forz/OS,我被要求将表中的特定列从十进制(7,2)更改为十进制(7,4)。听起来很简单,对吧 alter table MySchema.MyTable alter column myColumn set data type decimal(7,4); 但是,DB2的响应是这样的错误:“为列‘MYCOLUMN’指定的属性与现有的列定义不兼容。” 我原以为从十进制(7,2)到十进制(7,4)的转换非常简单,但DB2不同意 除了扔掉桌子,从头开始重建,我还有什么

已经有一段时间了

使用DB210forz/OS,我被要求将表中的特定列从十进制(7,2)更改为十进制(7,4)。听起来很简单,对吧

alter table MySchema.MyTable
alter column myColumn
set data type decimal(7,4);
但是,DB2的响应是这样的错误:“为列‘MYCOLUMN’指定的属性与现有的列定义不兼容。”

我原以为从十进制(7,2)到十进制(7,4)的转换非常简单,但DB2不同意

除了扔掉桌子,从头开始重建,我还有什么选择

提前谢谢


Dave

创建一个正确类型的新列
ALTER ADD column
,使用
UPDATE
填充它,
ALTER DROP column
旧列<代码>重命名列因此设置原始列的名称。

创建正确类型的新列
ALTER ADD COLUMN
,使用
UPDATE
填充它,
ALTER DROP COLUMN
旧列<代码>重命名列因此设置原始列的名称。

Db2不喜欢这种更改的原因是您将从99999.99更改为999.9999

这真的是你想要的吗?从(7,2)到(9,4)只需在不丢失任何数据的情况下再添加两个小数位,Db应该允许这样做


Db2 for i给出了一个警告,但允许您忽略该警告…

Db2不喜欢这种更改的原因是您将从99999.99更改为999.9999

这真的是你想要的吗?从(7,2)到(9,4)只需在不丢失任何数据的情况下再添加两个小数位,Db应该允许这样做


Db2 for i给出了一个警告,但允许您忽略该警告…

我错过了Db2 for i。那时事情就简单多了,我想念DB2。那时候事情容易多了。