I had a situation to update or insert a table on the basis of source table. The Source and the destination tables were same except that the source table had some extra columns to indicate the operation type Insert update or delete to perform when inserting or updating the data.
I thought of using MERGE which is one that fastest way of doing it. After spending a few hours in came to now that i cannot use MERGE. As my source table can have one or more entries for pk_row. Which merge cannot handle and give ORA-30926: unable to get a stable set of rows in the source tables
for x in ( select * from source )
I thought of using MERGE which is one that fastest way of doing it. After spending a few hours in came to now that i cannot use MERGE. As my source table can have one or more entries for pk_row. Which merge cannot handle and give ORA-30926: unable to get a stable set of rows in the source tables
Actually i thought merge statement is some thing like Select source table....
update destination table.... if sql%rowcount 0 then insert .... end if;
But actually it is
loop if record exists then if record hasn't been modified by us yet then update it else fail end if else insert it end if end loop