On 9/28/05, Ranko Mosic <ranko.mosic@xxxxxxxxx> wrote: > > Hi, > requirement: > - input parameters are codes p_cd1, p_cd2, ... > - for these codes I get descriptions ( select descr1 into v_descr1 from > lkp_table1 where cd = p_cd1; select descr2 into v_descr2 from lkp_table2 where > cd = p_cd2 etc ) > - check if table t has records where t.descr1 = v_descr1 > and t.descr2 = v_descr2 and on and on ....; > - if row exists return primary key; > - if not then insert. > > What is the best way of doing it ( simplest ) ? > > Regards, Ranko. > > > Ranko, "Simplest way" is to solicit opinions without using a search engine or checking the documentation. Its also usually "simplest" to leverage the existing provided functionality, rather than writing your own routines, error handling, etc. A search of "oracle 10.1 upsert" in google.com <http://google.com> + "I'm feeling lucky" produced this for me. Perhaps you might get lucky too. Paul http://www.psoug.org/reference/merge.html MERGE <hint> INTO <table_name> USING <table_view_or_query> ON (<condition>) WHEN MATCHED THEN <update_clause> WHEN NOT MATCHED THEN <insert_clause>;