は、私はPL/SQLでINSERT
とUPDATE
の両方を行うことができます。Oracle上のPL/SQLで行タイプ変数を使用しているMERGE?タイプ<code>foo%ROWTYPE</code>の変数<code>bar</code>で
INSERT INTO foo VALUES bar;
UPDATE foo SET ROW = bar WHERE id = bar.id;
しかし、私はMERGE
をどのように行うのですか?
MERGE INTO foo USING bar ON foo.id = bar.id
WHEN MATCHED THEN UPDATE SET ROW = bar
WHEN NOT MATCHED THEN INSERT VALUES bar;
PL/SQL:ORA-00942:次の方法は、以下のエラーメッセージを生成するテーブルまたはビューが存在しない
これはオラクルのフォーラムで答えられていると思います。https://community.oracle.com/thread/621511?start=0&tstart=0ソロモンの答えを見てください。あなたのために働く可能性のあるFORALL Mergeもあります。 http://www.morganslibrary.org/reference/plsql/array_processing.html –
ご回答いただきありがとうございます。ソロモンズの答えは、行タイプのすべてのフィールドを列挙しています。私は 'FORALL MERGE'がどのようにここで助けになるのか分かりません。しかし、MichaelSのソリューションは有望に見えます。 – Anders
いいえ、私はどちらかの答えを得ることはできません。 ORA-38104:ON句で参照される列は更新できません:foo.id' – Anders