以下のように表示されます。
(日本語)
ORA-42399: 読取り専用ビューではDML操作を実行できません
(英語)
ORA-42399: cannot perform a DML operation on a read-only view
発生パターン
このエラーは以下のような場合に発生します。
- 読み取り専用のビューに対してUPDATE等のDML操作を行った
(読取り専用ビューは WITH READ ONLYオプション付きで作成したビューです)
- エラー例
- SQL> update v_test set col2 = '100' where col1 = 'AA'; update v_test set col2 = '100' where col1 = 'AA'; * 行1でエラーが発生しました。: ORA-42399: 読取り専用ビューではDML操作を実行できません
v_testは、読取り専用ビューの前提です。
対処法
- ビューの定義を更新可能なビューに変更する。
- VIEW経由ではなく、TABLEを直接指定してDML操作を行う。