Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: PL/SQL script problem

Re: PL/SQL script problem

From: Karen Abgarian <karen.abgarian_at_fmr.com>
Date: Thu, 09 Sep 1999 10:12:40 -0400
Message-ID: <37D7C058.422E65A5@fmr.com>


Hi James,

ORA-02049 occurs when, f.e., somebody locked a remote table and you are trying to modify it. If a table were local, Oracle would wait forever. In case of remote table, there is a parameter which controls when Oracle gives up.

Check if the table you are updating (prdinfo) is actually a synonym/view referencing a remote table.

Regards,
Karen Abgarian.

James Thomson wrote:

> Can anyone find what is giving me this error:
>
> DECLARE
> *
> ERROR at line 1:
> ORA-02049: timeout: distributed transaction waiting for lock
> ORA-06512: at line 15
>
> Here is my script, if I substitute an actual product # for the 2
> v_tdrow.prod's and make the cursor only fetch one row, it works, so I
> think something is wrong with the way I'm doing the cursor or using it.
>
> DECLARE
> v_tdrow prdinfo.qty_sold%type;
> CURSOR info IS
> select distinct prod_id as prod_id from order_in_detail;
>
> BEGIN
>
> OPEN info;
> LOOP
> FETCH info INTO v_tdrow;
> EXIT WHEN info%NOTFOUND;
>
> UPDATE prdinfo set qty_sold=(select sum(order_qty) from
> order_in_detail where prod_id=v_tdrow.prod_id) where
> prod_id=v_tdrow.prod_id;
> END LOOP;
> close info;
> COMMIT WORK;
> END;
> .
> /
>
> ---------------------------
> James Thomson
> itabl7up_at_yahoo.com
>
> Sent via Deja.com http://www.deja.com/
> Share what you know. Learn what you don't.
Received on Thu Sep 09 1999 - 09:12:40 CDT

Original text of this message

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