- Goal
データがあればUPDATE、なければINSERTする。
APEXのダイナミックアクションでの利用を想定しており、ボタンをクリックした際にプロシージャで呼び出して、テーブルのUPSERTをする。 - How
Merge文を使う
COLUMN1-4がキーで、FlagをUPSERTする
- SourceThis file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
PROCEDURE UPSERT_TABLE(C_1 in VARCHAR2, C_2 in VARCHAR2, C_3 in VARCHAR2, C_4 in VARCHAR2) as BEGIN MERGE INTO <TARGET TABLE> A USING DUAL --- プロシージャで1件ずつ追加/上書するなら、DUALで可能 ON (<COLUMN_1> = C_1 and <COLUMN_2> = C_2 and <COLUMN_3> = C_3 and <COLUMN_4> = C_4) WHEN matched then update set <FLAG> = case <FLAG> when 1 then 0 when 0 then 1 END WHEN not matched then insert(<COLUMN_1>,<COLUMN_2>,<COLUMN_3>,<COLUMN_4>,<FLAG>) values(C_1,C_2,C-3,C_4,1); end;
Oracle Application Express Notes | Apps development Notes | Google Cloud Platform | Python | apps test | Cool Beans | English | Books
2016/05/10
UPSERT のサンプル - データがあればUPDATE、なければINSERT
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿