メッセージ解説書

SQL3600 - SQL3699

SQL3600N表 "<table-name>" が検査保留状態にないため、SET INTEGRITY ステートメントの IMMEDIATE CHECKED オプションは無効です。

説明: データは、表が検査保留状態に置かれている場合にのみ、制約違反をチェックされます。

ユーザーの処置: OFF オプションで SET INTEGRITY ステートメントを使用し、表を検査保留状態にしてください。

sqlcode: -3600

sqlstate: 51027

SQL3601Wステートメントが 1 つまたは複数の表を自動的に検査保留状況にしました。

説明: 以下の 2 つの状況で、このエラーが起こります。

  1. 参照構造の親表の設定には、検査保留に設定される従属表と 下位表が必要です。これは、参照保全制約を実施するために必要です。 親表が検査保留状態にあるときに、外部キーを追加するには、自動的に検査保留に置かれる親表の新しいすべての従属表と 下位表が必要です。
  2. 従属の即時最新表示の要約表を持つ基礎表を設定するには、それらの従属要約表を検査保留に設定する必要があります。基礎表と従属要約表との間のデータ関係を強制するには、この設定が必要です。

ユーザーの処置: これは警告メッセージです。すべての従属表と下位表の保全性を妥当性検査するには、IMMEDIATE CHECKED オプションを指定し、SET INTEGRITY ステートメントを実行する必要があります。

sqlcode: +3601

sqlstate: 01586

SQL3602Wデータ検査処理で制約違反が見つかり、それらは例外表に 移動されました。

説明: SET INTEGRITY ステートメントの実行でチェックされるように指定された制約に違反する行が存在します。 それらの表は、例外表に移動されます。

ユーザーの処置: 制約に違反した行については、例外表をチェックしてください。行は、オリジナル表から削除されますが、訂正することが可能で、例外表から戻すことができます。

sqlcode: +3602

sqlstate: 01603

SQL3603NSET INTEGRITY ステートメントによるデータ検査処理が、名前 "<name>" の 制約に関係する保全性違反を見つけました。

説明: SET INTEGRITY ステートメントによってチェックされるよう指定された表に定義されている制約に違反する行が見つかりました。 名前 "<name>" は、制約名か、または生成された列の名前です。

ユーザーの処置: FOR EXCEPTION オプションが使用されていないため、行は表から削除されませんでした。

データをチェックする場合、FOR EXCEPTION オプションを使用し、SET INTEGRITY ステートメントを実行するよう お勧めします。例外表の情報を使用した、データの訂正が必要になる可能性があります。

sqlcode: -3603

sqlstate: 23514

SQL3604NSET INTEGRITY ステートメントまたは LOAD ユーティリティーの表 "<table-name>" に 対応する例外表 "<excp-table-name>" が正しい構造になって いないか、固有の索引、制約、生成された列、またはトリガーを使用して定義されているか、またはそれ自体が検査保留状態にあります。

説明: 表に対応する例外表は、オリジナル表の定義と同様な定義を 持っている必要があります。ユーティリティーの任意選択列は、例外表を記述している資料の 関連するセクションに指定されています。生成された列が例外表にないと思われます。 例外表には、制約またはトリガーを定義することはできません。例外表自体は、検査保留状態にすることはできません。

ユーザーの処置: 資料内の関連するセクションに示されているように例外表を作成し、ステートメントまたはユーティリティーを 再実行してください。

sqlcode: -3604

sqlstate: 428A5

SQL3605NSET 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


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]