Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> Re: Merge doesn't do delete

Re: Merge doesn't do delete

From: Yavor Ivanov <Yavor_Ivanov_at_stemo.bg>
Date: Fri, 13 Oct 2006 17:06:25 +0300
Message-ID: <op.thc5gzuatjan04@y-ivanov.sf.stemo.bg>

	The purpose of the 'Merge' command is not to sync two tables. It's purpose is to "upsert" new data to a table containing old data. Best for ETL in staging area of DWH. Like if you have lots of data in some dimension table, and you need to add the changes from last month.
	About the best way to keep two tables in sync... Well, it depends on your data volume. If you can afford it, think about "truncate" and then "insert /*+append*/ ...".
	Also you may take a look of dbms_rectifier_diff.rectify. This is made for replication, but can do the job.

Rgds,
Yavor

On Fri, 13 Oct 2006 16:30:49 +0300, John J Cantu <John_J_Cantu_at_raytheon.com> wrote:

> All,
>
> The 'Merge' command seems to be incomplete since it doesn't delete records
> that don't exist. The 'Merge' command only performs an update or insert.
> Isn't the purpose of the 'Merge' command to kind of make one table look
> like another one? Sure there will be times when only updating and
> inserting records is enough to keep the tables insync, but only if records
> aren't deleted from the source table. Any comments or suggestions on the
> best way to keep two tables in sync within the same database? Will I have
> to run two commands, one command will be the Merge to update and insert
> and a delete command that queries for keys that don't exist anymore in the
> source table?
>
> Thanks,
>
> John Cantu

--
http://www.freelists.org/webpage/oracle-l
Received on Fri Oct 13 2006 - 09:06:25 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US