SQLSTATE=23514:在设置完整性上遇到错误

问题描述

有人可以告诉我有什么问题吗,为什么我无法启用完整性,尽管没有发现名称为 CATEGORY 的约束。

create function FCOK_ACCOUNT_CATEGORY_C2(xmlrecord XML) returns integer language sql contains sql no external action deterministic return xmlcast(xmlquery('$d/row/c2' passing xmlrecord as "d") as integer);

reorg table FCOK_ACCOUNT_TEST inplace

db2pd -db admindb –reorg

数据库成员 0 -- 数据库 ADMINDB -- 活动 -- 上升 10 天 03:14:17 -- 日期 2021-07-26-19.28.05.648688

表重组信息: 地址 TbspaceID TableID PartID MasterTbs MasterTab TableName Type IndexID TempSpaceID 0x0A001F00174DF588 4 21566 n/a n/a n/a FCOK_ACCOUNT 离线 0 4 0x0A001F0027981508 3 26880 n/a n/a n/a FCOK_ACCOUNT_TEST 在线 0 3

表重组统计: 地址 TableName Start End PhaseStart MaxPhase Phase CurCount MaxCount Status Completion 0x0A001F00174DF588 FCOK_ACCOUNT 07/16/2021 18:38:46 07/16/2021 18:43:15 07/16/2021 18:39:40 3 IdxRecreat 0 0 Done 0x0A001F0027981508 FCOK_ACCOUNT_TEST 07/26/2021 18:13:16 07/26/2021 18:14:38 n/a n/a n/a 0 0 完成 0 bash-4.2$

set integrity for FCOK_ACCOUNT_TEST off;

ALTER TABLE FCOK_ACCOUNT_TEST ADD CATEGORY INTEGER generated always as (FCOK_ACCOUNT_CATEGORY_C2(XMLRECORD))

set integrity for FCOK_ACCOUNT_TEST immediate checked;

db2 "set integrity for DB2ADMIN.FCOK_ACCOUNT_TEST immediate checked"

DB21034E 该命令被作为 sql 语句处理,因为它不是 有效的命令行处理器命令。在 sql 处理过程中,它返回: sql3603N 通过 SET INTEGRITY 语句的完整性处理已发现 涉及约束、唯一索引、生成的完整性违规 列,或 XML 列上的索引。关联的对象由 “DB2ADMIN.FCOK_ACCOUNT_TEST.CATEGORY”。 sqlSTATE=23514 bash-4.2$

bash-4.2$ db2 "select TYPE,ENFORCED from SYSCAT.TABCONST where CONSTNAME='CATEGORY'"

强制类型


选择了 0 条记录。

bash-4.2$ db2 "select COLSEQ,COLNAME from SYSCAT.KEYCOLUSE where CONSTNAME='CATEGORY'"

COLSEQ COLNAME


选择了 0 条记录。

bash-4.2$ db2 "reorg table db2admin.FCOK_ACCOUNT_TEST inplace"

sql0668N 表上的原因码“1”不允许操作 “DB2ADMIN.FCOK_ACCOUNT_TEST”。 sqlSTATE=57016

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)