ORA-04091 with table insert

From: steph <stephan0h_at_yahoo.de>
Date: Thu, 19 Jun 2008 07:48:32 -0700 (PDT)
Message-ID: <98103dbf-2151-44e6-800e-978133a2d446@x41g2000hsb.googlegroups.com>


Hi Group,

Oracle 10G - This is my problem:

There's a table containing a time series like

date,val

1.1.08,2
2.1.08,1
3.1.08,4
5.1.08,-1

Now I need to advance this table in time, the new records come from a query so I have something like:

insert into timeseriestable
select date,val from timeseriesquery
/

Now in this query I need to access the last value of the time-series as a kind of a starting value for calculating the new records. (In this example -1).

Unfortunately this leads to a ORA-04091. I understand the reason for the problem, but I didn't find a good way to circumvent this. One idea is to create a materialized view containing the last values for each time series (yes, there's more than one time series involved ...). But this solution is less flexible as I need to refresh the materialized view before each update. The other idea is to use some pl/sql code with an autonomous transaction to access the last value of the time series. What else could i do here?

Thanks,
Stephan Received on Thu Jun 19 2008 - 09:48:32 CDT

Original text of this message