我必须编写一个sql脚本来修改db2数据库中的许多类型的列。对于一个特定的表(使用的脚本与其他表相同),一切都进行得很好,db2总是返回一个我不明白的错误。
这是我的剧本:
ALTER TABLE "TEST"."CLIENT"
ALTER COLUMN C_CODE
SET DATA TYPE CHAR(16 OCTETS);而错误是:
SQL错误42997:不支持函数(原因代码=“21”)SQLCODE=-270,SQLSTATE=42997,DRIVER=4.26.14
我试图修改同一表上的其他列,但总是收到相同的错误。你有什么想法吗?
提前感谢
发布于 2022-10-17 10:20:17
错误SQL0270N (sqlcode = -270)有许多可能的原因,具体原因由“原因代码”指示。
在这种情况下,“理由代码21”是指:
列无法删除或更改其长度、数据类型、安全性、空值性或隐藏属性的表,该表是物化查询表的基表。
Db2-LUW上这个sqlcode的文档位于:https://www.ibm.com/docs/en/db2/11.5?topic=messages-sql0250-sql0499#sql0270n。
搜索该页面上的SQL0270N,并注意建议的用户响应:
若要删除或更改表中的列(该表是物化查询表的基表),请执行以下步骤: 1.删除依赖的物化查询表。2.删除基表的列,或更改该列的长度、数据类型、空值或隐藏属性。3.重新创建物化查询表.
https://stackoverflow.com/questions/74094401
复制相似问题