ORAエラー

[ORAエラー] ORA-38104: ON句で参照する列は更新できません

投稿日:2019年11月26日 更新日:

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

(日本語)
ORA-38104: ON句で参照する列は更新できません
(英語)
ORA-38104: Columns referenced in the ON Clause cannot be updated

発生パターン

このエラーは以下のような場合に発生します。

  • MERGE文で、ON句に指定した条件の列を更新しようとした
エラー例
SQL> MERGE INTO tbl01 2 USING tbl02 3 ON (tbl01.id = tbl02.id) 4 WHEN MATCHED THEN 5 UPDATE SET 6 tbl01.id = tbl02.id, 7 tbl01.name = tbl02.name 8 WHEN NOT MATCHED THEN 9 INSERT (id, name) 10 VALUES (tbl02.id, tbl02.name) 11 / ON (tbl01.id = tbl02.id) * 行3でエラーが発生しました。: ORA-38104: ON句で参照する列は更新できません: "TBL01"."ID"

6行目でid列をUPDATEしようとしているが、id列は3行目の結合条件に使用しているためエラーとなっています。

対処法

  • MERGE文のON句に指定した列は更新することはできないので、
    ON句に指定した列を更新しなくても良いようにMERGE文を見直してください。

関連項目


スポンサーリンク

スポンサーリンク

-ORAエラー

執筆者:


comment

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

関連記事

ORACLE

[ORAエラー] ORA-01424: エスケープ文字に続く文字がないか、または無効です。

以下のように表示されます。 (日本語) ORA-01424: エスケープ文字に続く文字がないか、または無効です。 (英語 ...
ORACLE

[ORAエラー] ORA-00922: オプション指定されていないか、または無効です。

以下のように表示されます。 (日本語) ORA-00922: オプション指定されていないか、または無効です。 (英語) ...
ORACLE

[ORAエラー] ORA-00917: カンマがありません。

以下のように表示されます。 (日本語) ORA-00917: カンマがありません。 (英語) ORA-00917: mi ...
ORACLE

[ORAエラー] ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。

以下のように表示されます。 (日本語) ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました ...
ORACLE

[ORAエラー] ORA-01659: nを超えるMINEXTENTSを表領域XXXに割当てできません。

以下のように表示されます。 (日本語) ORA-01659: nを超えるMINEXTENTSを表領域XXXに割当てできま ...

スポンサーリンク