What is CHECK PENDING ?
Answers were Sorted based on User's Feedback
Answer / thiru
It is a state of the table being locked due to constraint
violation.
For eamaple if you try to nullify the master table alone
and reloading it with some additional records without
deleting detail table records or vise versa, the master and
the child tables whill go to the check pending state.
You can check the same with the help of the below query.
select tabname from syscat.tables where status='C';
To clear the same we can use the following statements.
set integrity for master immediate checked for exception in
master use exception_table;
the violated records will be moved to exception table and
the check pending will be cleared.
| Is This Answer Correct ? | 4 Yes | 0 No |
Answer / deepak dada
check pending is the state in which load utility does not
check the constraint of the table
| Is This Answer Correct ? | 4 Yes | 2 No |
Answer / s
CHECK PENDING means that there rows in the table that might
violate check constraints or RI constraints.
| Is This Answer Correct ? | 4 Yes | 2 No |
Answer / abhishek singh
1. When you use ALTER TABLE to add a check constraint to already populated tables, and CURRENT RULES special register is DB2®, the check constraint is added to the table description but its enforcement is deferred. Because there might be rows in the table that violate the check constraint, the table is placed in CHECK-pending status.
2. When a table is LOADed with ENFORCE NO option, then the table is left in CHECK PENDING status as DB2 bypasses referential integrity and check constraints
3. An index might be placed in CHECK-pending status if you recovered an index to a specific RBA or LRSN from a copy and applied the log records, but you did not recover the table space in the same list. The CHECK-pending status can also be set on an index if you specified the table space and the index, but the recovery point in time was not a point of consistency (QUIESCE or COPY SHRLEVEL REFERENCE).
To reset this status, run the CHECK DATA utility, which locates invalid data and, optionally, removes it. If CHECK DATA removes the invalid data, the remaining data satisfies all check and referential constraints and therefore, the CHECK-pending restriction is removed.
1. If a table space is in both REORG-pending and CHECK-pending status (or auxiliary CHECK-pending status), run the REORG TABLESPACE utility first and then run CHECK DATA to reset the respective states.
2.Run the CHECK INDEX utility on the index. If any errors are found, use the REBUILD INDEX utility to rebuild the index from existing data.
3.Use the REPAIR utility with the SET STATEMENT and NOCHECKPEND option.
Following jobs remove copy pending and recovery pending status from a table space and removes copy pending, recovery pending status and rebuild pending status from an index space
//STEPO1 EXEC PGM=DSNUTILB,REGIONM,
// PARM='DB2X,MIGRDAN, '
//STEPLIB DD DSN=XXX.XXXXX.SDSNLOAD,DISP=SHR
//SYSIN DD *
REPAIR SET TABLESPACE XXXXX.XXXXX NOCOPYPEND
REPAIR SET TABLESPACE XXXXX.XXXXX NORCVRPEND
REPAIR SET INDEX XXXXX.XXXXX NOCOPYPEND
REPAIR SET INDEX XXXXX.XXXXX NORCVRPEND
REPAIR SET INDEX XXXXX.XXXXX NORBDPEND
/*
//SYSPRINT DD SYSOUT=*
//UTPRINT DD SYSOUT=*
| Is This Answer Correct ? | 1 Yes | 0 No |
Answer / kamal singh
It comes into existencw when constraint checking is
suspended for a particular table. Let me explain with the
help of an example:
If we want to temporarily suspend constraint checking for a
table named EMPLOYEES and deny read-only access to that
table while constraint checking is turned off, we could do
so by executing a SET INTEGRITY statement that looks
something like this:
SET INTEGRITY FOR EMPLOYEES OFF
When constraint checking is suspended for a particular
table, that table is placed in "Check Pending" state to
indicate that it contains data that has not been checked
(and that may not be free of constraint violations). While
a table is in "Check Pending" state, it cannot be used in
insert, update, or delete operations, nor can it be used by
any DB2 UDB utility that needs to perform these types of
operations. In addition, indexes cannot be created for a
table while it is in "Check Pending" state, and data stored
in the table can be retrieved only if the access mode
specified when the SET INTEGRITY statement was used to
place the table in "Check Pending" state allows read-only
access.
| Is This Answer Correct ? | 3 Yes | 3 No |
Is db2 a mainframe?
1) I have 3 programs : PGMA, PGMB, PGMC. PGMA calls PGMB and PGMB calls PGMC. I have to do inserts, updates in all the 3 pgms. 2) Say PGMC has done its work successfully and returned to PGMB 3) PGMB had an SQL error while doing some update 4) PGMA has already done some updates before calling PGMB all are running under the same CICS region. What will happen if I issue SYNCPOINT ROLLBACK in PGMB when it abends ? Does all the changes in PGMA,B,C rollback ? (because all the pgms belong to same task).
How to update more then one record using update?
If a non-DB2 program calls a DB2 program, the calling program's name will be there in SYSIN of IKJEFT01 and the plan name will be that of the called program. But is a bind needed or a plan has to be created for the non-DB2 program also?
SQLCODE = -199, ERROR: ILLEGAL USE OF KEYWORD CHAR, TOKEN KEY was expected
how to take the back up of the DB2 table.
What is load replace in db2?
Explain the contents that are a part of dclgen.
SET is the ANSI standard for variable assignment, SELECT is not. SET can only assign one variable at a time, SELECT can make multiple assignments at once. If assigning from a query, SET can only assign a scalar value. If the query returns multiple values/rows then SET will raise an error. SELECT will assign one of the values to the variable and hide the fact that multiple values were returned (so you'd likely never know why something was going wrong elsewhere - have fun troubleshooting that one) When assigning from a query if there is no value returned then SET will assign NULL, where SELECT will not make the assignment at all (so the variable will not be changed from it's previous value) As far as speed differences - there are no direct differences between SET and SELECT. However SELECT's ability to make multiple assignments in one shot does give it a slight speed advantage over SET.
What is multi row fetch in db2?
What is the use of dclgen in db2?
Can we insert update delete in view?