最近初学DB2,在对不是自己创建的XXX库中一个张表做insert语句后,DB2报错:
- SQL code
DB2 Database Error: ERROR [56098] [IBM][DB2/NT] SQL0727N An error occurred during implicit system action type "3". Information returned for the error includes SQLCODE "-798", SQLSTATE "428C9" and message tokens "ID". LINE NUMBER=0. SQLSTATE=56098,该表的信息:CREATE TABLE HRSYS.SKYDATAOBJS ( ID INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1, NO CACHE) NOT NULL, OBJNAME VARCHAR(40) NOT NULL, SYSTEM SMALLINT NOT NULL DEFAULT 0, DISABLED SMALLINT NOT NULL DEFAULT 0, REMARK VARCHAR(400), CONSTRAINT PK_SKYDATAOBJ PRIMARY KEY(ID))IN SKYSYSTEMCOMPRESS NOGOCREATE UNIQUE INDEX HRSYS.IX_SKYDATAOBJS ON HRSYS.SKYDATAOBJS(OBJNAME) ALLOW REVERSE SCANS GOCREATE TRIGGER HRSYS.SETR_SKYDATAOBJS NO CASCADE BEFORE INSERT ON HRSYS.SKYDATAOBJS REFERENCING NEW AS newr FOR EACH ROWBEGIN ATOMIC set (newr.ID)=NEXTVAL FOR hrsys.seq_SKYDATAOBJS; ENDGOGRANT CONTROL ON HRSYS.SKYDATAOBJS TO USER ADMINISTRATORGOGRANT SELECT, INSERT, UPDATE, DELETE, ALTER, INDEX, REFERENCES ON HRSYS.SKYDATAOBJS TO USER ADMINISTRATOR WITH GRANT OPTIONGOinsert 语句:insert into SKYDATAOBJS(OBJNAME,SYSTEM,DISABLED)values('MyTest',default,default)
这个问题是否涉及到了锁和隔离级别?如果是的话,请问如何解决,谢谢!
------解决方案--------------------------------------------------------
这和锁应该没关系,看DB2的提示,你可以调用一下SYSPROC.ADMIN_REVALIDATE_DB_OBJECTS试试,参数,三个参数就是你这个表的信息。