MATCHING se refiere a encontrar el registro según los campos que le pasas.
Código SQL
[-]
update or insert into Cows (Name, Number, Location)
values ('Suzy Creamcheese', 3278823, 'Green Pastures')
matching (Number)
returning rec_id into :id;
En el ejemplo, busca primero si existe un registro cuyo campo
Number es
3278823.
Si lo encuentra hace un update sobre ese registro modificando los otros campos que le pasas Name y Location.
De lo contrario hace un insert con los tres campos que le pasas.