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