事象 見出しへのリンク
SQL0668N 理由コード3エラーが発生しDB操作ができない。
原因 見出しへのリンク
ロード操作実行中にエラーや force applicationコマンド等で強制的に終了するなど、ロード操作が失敗または中断した場合、該当の表がロード・ペンディング状態になる。
ロードペンディング確認方法 見出しへのリンク
SELECT VARCHAR(TABSCHEMA,30) TABSCHEMA,VARCHAR(TABNAME,30) TABNAME, LOAD_STATUS, NO_LOAD_RESTART FROM SYSIBMADM.ADMINTABINFO WHERE LOAD_STATUS <> 'NULL'
SELECT 結果 見出しへのリンク
TABSCHEMA
——————————
スキーマ名
TABNAME
——————————
テーブル名
LOAD_STATUS
————
PENDING
NO_LOAD_RESTART
—————
N
ステータスが「PENDING」で検索結果に表示されたテーブルがロードペンディングになったテーブル。
ロードペンディング解除方法 見出しへのリンク
以下1~4のどれかで解除する。
- TERMINATEオプションを使用してロード操作を終了する。
- RESTARTオプションを使用してロードを再始動する。
- ロード操作が失敗したその同じ表に対し、LOAD REPLACE 操作を実行する。
- ロードした表の表スペースを、最新の表スペースまたはデータベース・バックアップを RESTORE DATABASEコマンドを使ってリカバリーした後、それ以降のリカバリー処理を実行する。
私はロードペンディング状態を解除の上、別方法で再度ロードを実施したかったので1.の方法でロードペンディングを解除した。
コマンドは以下。
※TERMINATEオプションの場合、オリジナルのLOADコマンドと表名だけは一致している必要があります。
コマンド「1.TERMINATE オプションを使用してロード操作を終了する。」 見出しへのリンク
db2 “LOAD FROM LOAD時取込ファイル名.ixf OF IXF LOBS FROM . TERMINATE INTO テーブル名”
- 参考 URL ロード・ペンディングの回復方法