Message Reference

SQL3600 - SQL3699

SQL3600NThe IMMEDIATE CHECKED option of the SET INTEGRITY statement is not valid since the table "<table-name>" is not in the check pending state.

Explanation: The data is checked for constraint violations only if the table is placed in the check pending state.

User Response: Use the SET INTEGRITY statement with the OFF option to place a table in the check pending state.

sqlcode: -3600

sqlstate: 51027

SQL3601WThe statement caused one or more tables to automatically be placed in check pending state.

Explanation: There are two situations where this occurs.

  1. Setting a parent table in a referential structure requires dependent and descendent tables to be set in check pending. This is necessary to enforce referential integrity constraints. Adding a foreign key when the parent table is in a check pending state requires all new dependents and descendents of the parent table to be placed automatically in check pending.
  2. Setting a base table that has dependent refresh immediate summary tables requires these dependent summary tables to be set in check pending. This is necessary to enforce the data relationship between the base table and the dependent summary table.

User Response: This is a warning message. The user must execute the SET INTEGRITY statement with the IMMEDIATE CHECKED option in order to validate the integrity on all the dependent and descendent tables.

sqlcode: +3601

sqlstate: 01586

SQL3602WCheck data processing found constraint violations and moved them to exception tables.

Explanation: There are rows that violate constraints that were specified to be checked by the SET INTEGRITY statement execution. These were moved to exceptions tables.

User Response: Check the exception tables for rows that violate constraints. The rows have been deleted from the original table but can be corrected and transferred back from the exception tables.

sqlcode: +3602

sqlstate: 01603

SQL3603NCheck data processing through the SET INTEGRITY statement has found integrity violation involving a constraint with name "<name>".

Explanation: A row has been found to violate a constraint defined on a table specified to be checked by the SET INTEGRITY statement. The name "<name>" is either a constraint name or the name of a generated column.

User Response: The row has not been deleted from the table since the FOR EXCEPTION option was not used.

It is advisable to execute the SET INTEGRITY statement using the FOR EXCEPTION option when checking the data. The data may be corrected with the information from the exception table(s).

sqlcode: -3603

sqlstate: 23514

SQL3604NException table "<excp-table-name>" corresponding to table "<table-name>" in the SET INTEGRITY statement or LOAD utility does not have the proper structure, has been defined with unique indexes, constraints, generated columns, or triggers, or is in the check pending state itself.

Explanation: The exception table corresponding to a table must have its definition similar to that of the original table. Optional columns for the utility are as specified in the relevant section of the documentation describing the exception tables. There may not be any generated columns in the exception table. There must not be any constraints or triggers defined on the exception table. The exception table itself should not be in the check pending state.

User Response: Create the exception table as indicated in the relevant section of the documentation and re-run the statement or utility.

sqlcode: -3604

sqlstate: 428A5

SQL3605NTable "<table-name>" named in the SET INTEGRITY statement is either not listed to be checked or is an exception table specified more than once.

Explanation: When the FOR EXCEPTION clause is specified in the SET INTEGRITY statement, this error could be caused by one of the following :

User Response: Correct the table names and execute the command again.

sqlcode: -3605

sqlstate: 428A6

SQL3606NThere is a mismatch in the number of tables being checked and in the number of exception tables specified in the SET INTEGRITY statement.

Explanation: There must be a one-to-one correspondence between the original tables and the exception tables provided in the list.

User Response: Create the missing exception table if not already done and specify it in the list in order to execute the command again.

sqlcode: -3606

sqlstate: 428A7

SQL3608NCannot check or reset the Check Pending state on dependent table "<dep-table-name>" using the SET INTEGRITY statement while the parent table "<par-table-name>" is in the check pending state.

Explanation: The parent table must be clean (not in the check pending state) or be included in the invocation list in order to

User Response: Ensure that the parent table is not in check pending by executing the SET INTEGRITY statement to check the parent table.

It is recommended to check the parent table first. It is also possible to check the dependent table and include the parent table in the invocation list. In this case, the command could still fail if there are constraint violations in the parent table and they are not deleted. This can happen if the FOR EXCEPTION option is not used.

In the case of a referential cycle, all tables must be included in the invocation list.

sqlcode: -3608

sqlstate: 428A8


[ Top of Page | Previous Page | Next Page ]