sql >> Databáze >  >> RDS >> Oracle

Oracle:jak UPSERT (aktualizovat nebo vložit do tabulky?)

Příkaz MERGE sloučí data mezi dvěma tabulkami. Použití DUAL nám umožňuje použít tento příkaz. Upozorňujeme, že toto není chráněno proti souběžnému přístupu.

create or replace
procedure ups(xa number)
as
begin
    merge into mergetest m using dual on (a = xa)
         when not matched then insert (a,b) values (xa,1)
             when matched then update set b = b+1;
end ups;
/
drop table mergetest;
create table mergetest(a number, b number);
call ups(10);
call ups(10);
call ups(20);
select * from mergetest;

A                      B
---------------------- ----------------------
10                     2
20                     1


  1. Upozornění:mysql_fetch_array():zadaný argument není platným výsledkem MySQL

  2. Jak zabalit PL SQL kód v Oracle?

  3. Volání ODBC se nezdařilo s uloženou procedurou – předat dotaz

  4. Příklad použití bind_result vs get_result