web-dev-qa-db-ja.com

挿入時のdb2 SQLCODE -668

テーブル(db2)にデータを挿入しているときに、次のエラーが発生しました。

Message: Operation not allowed for reason code "7" on 
table "ELSAG.ICGR1106".. SQLCODE=-668, SQLSTATE=57016, DRIVER=3.50.152,...

グーグルで調べたところ、前のALTER TABLEステートメントが、行属性の機密性で定義された編集プロシージャを持つテーブルに列を追加しようとしたことがわかりました。このテーブルに列を追加することはできません。

それを修正する方法はありますか?

テーブルを削除して再作成したら、もう一度挿入できます。

前もって感謝します。

23
user438159

ジェームズの回答に追加して、周りを見回す時間を節約するには、次を実行します

CALL SYSPROC.ADMIN_CMD('REORG TABLE MY_TABLE_NAME')

この問題を修正するには、利用可能なSQLクライアント(ODBCまたはJDBC接続)でも)を使用します。ただし、このコマンドを実行するには、接続が自動コミットモードであり、管理者権限が必要です。

呼び出す前に [〜#〜] reorg [〜#〜] のドキュメントを読むことを強くお勧めします。

44
Alex Pakka

これによると: SQL0668

テーブルをさらに更新する前に、REORGを必要とするテーブルに変更を加えました。

テーブルに対してREORGユーティリティーを実行すると、大丈夫です。

7
James Anderson

CALL SYSPROC.ADMIN_CMD( 'REORG TABLE TABLE_NAME')は問題を解決します

3
Ankireddy Polu