develooper Front page | perl.dbi.users | Postings from February 2001

Oracle DBD: space leak and max open cursors errors

Thread Next
From:
Eli
Date:
February 20, 2001 14:04
Subject:
Oracle DBD: space leak and max open cursors errors
Message ID:
3A92E9D2.82657C6B@celera.com

I'm getting:

DBD::Oracle::db disconnect failed: ORA-00600: internal error code,
arguments: [729], [360], [space leak], [], [], [], [], [] (DBD ERROR:
OCISessionEnd)

This is after calling a stored procedure which returns some data through
a inout parameter around 50 times. The disconnect is in our error
handeling. The error that sends us to disconnect is:

 DBD::Oracle::st execute failed: ORA-01000: maximum open cursors
exceeded

Our DBI code inside the loop looks like: 

  my $procedure = q{
      BEGIN 
        RAP.GET_NEXT_JOB(:id, :cmd, :bsub);
      END;
  };
  my $sth = $dbh->prepare_cached( $procedure ) || confess "Can't
prepare";

  $sth->bind_param_inout(":id", $identifier, 20, DBI::SQL_INTEGER);
  $sth->bind_param_inout(":cmd", $command, 512, DBI::SQL_VARCHAR);
  $sth->bind_param_inout(":bsub", $bsub, 512, DBI::SQL_VARCHAR);

  $sth->execute;

We tried putting a $sth->finish after the execute, but that doesn't
change anything. It seems to be something to do with the inout param
because we do something very similar with only in params and never have
the problem.

Any ideas or suggestions?

thanks

-Eli

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About