Re: Dimension table load - PLSQL question

  • From: Paul Drake <bdbafh@xxxxxxxxx>
  • To: ranko.mosic@xxxxxxxxx
  • Date: Wed, 28 Sep 2005 18:29:25 -0400

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>;

Other related posts: