MERGE bug?

From: Shan R Shanmuganathan <shan_at_srinidhi.net>
Date: 26 Feb 2004 22:41:55 -0800
Message-ID: <408f220d.0402262241.493d950d_at_posting.google.com>


Try this:

create table xyz ( c1 number );

insert into xyz values ( 5 );

1 row created.

select * from xyz;

        C1


         5

merge into xyz
using (select * from dual) A
on ( 1=1 )
when matched then
update set c1 = 10
when not matched then
insert values ( 20 );

1 row merged.

select * from xyz;

        C1


        10

merge into xyz
using (select * from dual) A
on ( 1=2 )
when matched then
update set c1 = 10
when not matched then
insert values ( 20 );

0 row merged.

Why is it not inserting in the second merge?

9.2 SQL reference guide allows me to use any 'condition' inside the on ().

Bug??

BTW, I have 9.2.0.3.0.

Thanks,
Shan R Shanmuganathan Received on Fri Feb 27 2004 - 07:41:55 CET

Original text of this message