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/update optimization

Re: Merge/update optimization

From: Edgar Chupit <chupit_at_gmail.com>
Date: Mon, 1 Nov 2004 23:54:17 +0200
Message-ID: <a8f0771c04110113546e72900e@mail.gmail.com>


Dear Chris,

It is possible to include where clause in 10g to filter rows in when matched subclause.

>From the documentation:

Specify the where_clause if you want the database to execute the update operation only if the specified condition is true. The condition can refer to either the data source or the target table. If the condition is not true, then the database skips the update operation when merging the row into the table.

On Thu, 28 Oct 2004 14:42:59 -0400, Stephens, Chris <chrisstephens_at_pqa.com> wrote:
> =20
>
> I'm writing a batch update/insert procedure and am wondering if there is
> a way to only update columns corresponding to the 'on' clause if they
> are different from the current value?...instead of update all columns
> regardles of whether or not that are the same.
>
> So...
>
> Table stage
> Pk_id
> Col_a
> Col_b
> Col_c
>
> Table prod
> Pk_id
> Col_a
> Col_b
> Col_c
>
> Merge into a.prod using select * from b.stage on (a.pk_id=3Db.pk_id) =
> When
> matched then set a.col_a=3Db.col_a (but only if col_a has a different
> value) When not matched then insert...;
>
> Thanks
> chris
> --
> http://www.freelists.org/webpage/oracle-l
>

-- 
  Edgar
--
http://www.freelists.org/webpage/oracle-l
Received on Mon Nov 01 2004 - 15:51:20 CST

Original text of this message

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