安装补丁报错【不能同时包含聚集KEY和大字段】
【适用版本】
s-HR V8.5及以上
【问题描述】
问题描述:安装补丁或者执行SQL升级脚本时报错: 表[T_HR_SCMPAGENTPAYBILLENTRY]中不能同时包含聚集KEY和大字段],DBType=[DM]
原因分析:使用达梦数据库建表时,默认将主键设置为聚集索引(cluster index)。表创建成功后,再往该表增加大字段类型(text/clob)就会报错。所以解决办法就是怎么去除聚集索引。
【解决方法】
一. 对于新建的表,如果不想对主键字段设置聚集索引,可以通过执行以下SQL脚本,将主键索引不默认设置为聚集索引:
/*dialect*/ sp_set_para_value(1,'PK_WITH_CLUSTER',0);
二. 对已经存在的表,步骤一的参数设置显然时无效的。这个时候如果想要添加大字段,只能清除主键的聚集索引。清除步 骤如下(以表T_HR_SCmpAgentPayBillentry为例,具体执行时需要替换报错信息里的表名 ):
(1)给表创建一个新字段test_Field
/*dialect*/ alter table T_HR_SCmpAgentPayBillentry add test_Field VARCHAR;
(2)在新字段test_Field上创建一个聚集索引(该操作会自动将主键上的聚集索引变为非聚集索引)
/*dialect*/ CREATE cluster INDEX test_index_tf ON T_HR_SCmpAgentPayBillentry (test_Field);
(3)删掉上一步创建的索引
/*dialect*/ drop index test_index_tf;
(4)删除第一步创建的字段test_Field
ALTER TABLE T_HR_SCmpAgentPayBillentry DROP COLUMN test_Field;
这样就完成了对聚集索引的清除,接下来就可以继续安装报错的补丁或者执行报错的脚本了。
安装补丁报错【不能同时包含聚集KEY和大字段】
本文2024-09-22 21:29:24发表“s-hr cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-shr-120424.html