On 2007-12-16 23:07:36 +0100, Peter J. Holzer wrote:
> I have a perl script which updates some (large) tables from text-files,
> inserting, updating and deleting records. For performance reasons the
> inserts, updates and deletes are queued together and then done with an
> array operation when there are "enough". Now I've added another table
> and the script dies with:
> 
> *** glibc detected *** double free or corruption (fasttop): 
> 0x0000000001450ad0 ***
> 
> in ora_execute_array (called from line 854 in Oracle.pm)
> 
> The relevant part of the script looks like this:
> 
> sub insert {
>     my ($self, $inserts) = @_;
>     my $dal = $self->{_dal};
> 
>     my $sth_insert_data      = $dal->{_dbh}->prepare_cached("insert into 
> data(id, real) values(?, ?)");
>     my $sth_insert_datacoord =
>         $dal->{_dbh}->prepare_cached(
>                         "insert into datacoords(period_start, period_end, 
> data_id, set_id)
>                                          values(?,            ?,          ?,  
>      ?     )"
>                      );
> 
>     my $sth_insert_fact_comext = 
>         $dal->{_dbh}->prepare_cached(
>                         "insert into fact_comext(period_start, reporter, 
> partner, product, data_id, real)
>                                          values(?,             ?,        ?,   
>     ?,       ?        ?   )"
                                                                                
             ^^^^^^^^^^
Oops. I just noticed the missing comma here. I don't know if this was
the cause (I changed the execute_array to a plain execute in a loop,
when I noticed it and the script is still running), but that's certainly
a possibility.

        hp



-- 
   _  | Peter J. Holzer    | If I wanted to be "academically correct",
|_|_) | Sysadmin WSR       | I'd be programming in Java.
| |   | [EMAIL PROTECTED]      | I don't, and I'm not.
__/   | http://www.hjp.at/ |   -- Jesse Erlbaum on dbi-users

Attachment: pgpZVFRiNlkc3.pgp
Description: PGP signature

Reply via email to