Yes indeed there is a difference in not in and not exists logically also.. NOT IN filters NULLS also but NOT EXISTS wont.

The merge is working with hash anti join after i put not null condition as you mentioned... Thanks a lot...

But I still dont get the point as to why Oracle didnt use Hash Aj when i used NOT EXISTS in merge statement.. but used hash aj if i just queried..

Abhay.