SQL3600N | 表 "<table-name>" が検査保留状態にないため、SET INTEGRITY ステートメントの IMMEDIATE CHECKED オプションは無効です。 |
説明: データは、表が検査保留状態に置かれている場合にのみ、制約違反をチェックされます。
ユーザーの処置: OFF オプションで SET INTEGRITY ステートメントを使用し、表を検査保留状態にしてください。
sqlcode: -3600
sqlstate: 51027
SQL3601W | ステートメントが 1 つまたは複数の表を自動的に検査保留状況にしました。 |
説明: 以下の 2 つの状況で、このエラーが起こります。
ユーザーの処置: これは警告メッセージです。すべての従属表と下位表の保全性を妥当性検査するには、IMMEDIATE CHECKED オプションを指定し、SET INTEGRITY ステートメントを実行する必要があります。
sqlcode: +3601
sqlstate: 01586
SQL3602W | データ検査処理で制約違反が見つかり、それらは例外表に 移動されました。 |
説明: SET INTEGRITY ステートメントの実行でチェックされるように指定された制約に違反する行が存在します。 それらの表は、例外表に移動されます。
ユーザーの処置: 制約に違反した行については、例外表をチェックしてください。行は、オリジナル表から削除されますが、訂正することが可能で、例外表から戻すことができます。
sqlcode: +3602
sqlstate: 01603
SQL3603N | SET INTEGRITY ステートメントによるデータ検査処理が、名前 "<name>" の 制約に関係する保全性違反を見つけました。 |
説明: SET INTEGRITY ステートメントによってチェックされるよう指定された表に定義されている制約に違反する行が見つかりました。 名前 "<name>" は、制約名か、または生成された列の名前です。
ユーザーの処置: FOR EXCEPTION オプションが使用されていないため、行は表から削除されませんでした。
データをチェックする場合、FOR EXCEPTION オプションを使用し、SET INTEGRITY ステートメントを実行するよう お勧めします。例外表の情報を使用した、データの訂正が必要になる可能性があります。
sqlcode: -3603
sqlstate: 23514
SQL3604N | SET INTEGRITY ステートメントまたは LOAD ユーティリティーの表 "<table-name>" に 対応する例外表 "<excp-table-name>" が正しい構造になって いないか、固有の索引、制約、生成された列、またはトリガーを使用して定義されているか、またはそれ自体が検査保留状態にあります。 |
説明: 表に対応する例外表は、オリジナル表の定義と同様な定義を 持っている必要があります。ユーティリティーの任意選択列は、例外表を記述している資料の 関連するセクションに指定されています。生成された列が例外表にないと思われます。 例外表には、制約またはトリガーを定義することはできません。例外表自体は、検査保留状態にすることはできません。
ユーザーの処置: 資料内の関連するセクションに示されているように例外表を作成し、ステートメントまたはユーティリティーを 再実行してください。
sqlcode: -3604
sqlstate: 428A5
SQL3605N | SET INTEGRITY ステートメントに指定されている表 "<table-name>" が、チェックのためにリストされていないか、または 2 回以上指定されている例外表です。 |
説明: FOR EXCEPTION 文節が SET INTEGRITY ステートメントに指定されている場合は、以下のいずれかのよって、このエラーが起きた可能性があります。
ユーザーの処置: 表名を訂正して、コマンドを再発行してください。
sqlcode: -3605
sqlstate: 428A6
SQL3606N | 検査中の表の数が、SET INTEGRITY ステートメントに指定されている例外表の数に一致しません。 |
説明: リストに指定されたオリジナル表と例外表は、一対一で対応する必要があります。
ユーザーの処置: 足りない例外表をまだ作成していない場合は、それを作成して、コマンドを再実行するために、その例外表をリストに指定してください。
sqlcode: -3606
sqlstate: 428A7
SQL3608N | 親表 "<par-table-name>" が検査保留状態の間は、SET INTEGRITY ステートメントを使用して、従属表 "<dep-table-name>" の検査保留状態の 検査またはリセットを行うことはできません。 |
説明: 以下を行うには、親表は正しい状態 (検査保留状態ではない)、または 呼び出しリストに含まれている必要があります。
ユーザーの処置: SET INTEGRITY ステートメントを実行して親表を検査し、その親表が検査保留に置かれていないことを確認してください。
最初に親表を検査することが推奨されます。従属表を検査することも、親表を呼び出しリストに組み込むことも 可能です。この場合、親表に制約違反があり、それが削除されていなければ、コマンドは 失敗する可能性があります。 これは、FOR EXCEPTION オプションが使用されていない場合に起こることがあります。
参照サイクルの場合は、すべての表を呼び出しリストに 含む必要があります。
sqlcode: -3608
sqlstate: 428A8