如何解决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 举报,一经查实,本站将立刻删除。