Tim Bunce wrote:
On Wed, Feb 21, 2007 at 04:25:54PM +0000, Martin J. Evans wrote:
Hi,

I have DBIx::Log4perl which is currently connected to a DBD::Oracle. In DBIx::Log4perl::st::execute I want to call DBD::Oracle's dbms_get_line which is usually (from applications) called like this:

@lines = $dbh->func('dbms_output_get');

As I'm in st::execute I have a $sth and can get hold of a $dbh.

I'd expect this to work:

  $dbh = $sth->FETCH('Database');
  @lines = $dbh->func('dbms_output_get');

Tim.



Thanks Tim, but that does not appear to work. In my DBIx::Log4perl::execute method I now have (simplified):

sub execute {
    my ($sth, @args) = @_;

    my $ret = $sth->SUPER::execute(@args);

    my $dbh = $sth->FETCH('Database');
    my @d = $dbh->func('dbms_output_get');

    return $ret;
}

and I still get

Deep recursion on subroutine "DBD::Oracle::db::dbms_output_get"

dbms_output_get does create a new statement, prepare and execute it and it appears when execute is called it ends up back in my DBIx::Log4perl::execute method. I don't understand why this happens :-(

Martin
--
Martin J. Evans
Easysoft Limited
http://www.easysoft.com

Reply via email to