ORACLE機能 ORAエラー

[ORAエラー] ORA-42399: 読取り専用ビューではDML操作を実行できません

投稿日:

以下のように表示されます。

(日本語)
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操作を行う。

スポンサーリンク

スポンサーリンク

-ORACLE機能, ORAエラー

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

ORACLE

[ORAエラー] ORA-12704: キャラクタ・セットが一致しません。

以下のように表示されます。 (日本語) ORA-12704: キャラクタ・セットが一致しません。 (英語) ORA-12 ...
ORACLE

[SQL*Plus] SQL*Plusから直接DBMSパッケージを実行する

SQL*Plusから直接DBMSパッケージを実行するサンプルです。 サンプル 例)SQL*Plusから直接DBMS_OU ...
ORACLE

[ORACLE関数] 順位を飛ばして順位を付ける(RANK~OVER)

順位を飛ばして順位を付けるには、RANK~OVER関数を使用します。 順位を飛ばしてとは、同順位のデータが存在する場合は ...
ORACLE

[データディクショナリ] プロファイル情報を取得する

プロファイルの情報を参照するには、 PROFILESデータディクショナリビューを参照します。 PROFILESデータディ ...
ORACLE

[ORACLE関数] 文字列の前後空白を取り除く(TRIM, LTRIM, RTRIM)

文字列の前後空白を取り除くには、TRIMまたはLTRIMまたはRTRIMを使用します。 前後の空白を取り除く場合はTRI ...

スポンサーリンク