FYI, I opted to write my own version of the DBD::Oracle procedure so that I can successfully extract dbms_output lines up to the maximum length:
sub get_dbms_output {
my $dbh = shift;
my $sth = $dbh->prepare_cached('begin dbms_output.get_line(:line, :
+status); end;') or return;
my ($line, $status, @lines);
# Since 10g r2, Oracle has supported line sizes up to 32767.
$sth->bind_param_inout(':line', \$line, 32767, { ora_type => 1 });
$sth->bind_param_inout(':status', \$status, 20, { ora_type => 1 });
if (!wantarray) {
$sth->execute or return undef;
return $line if $status eq '0';
return undef;
}
push @lines, $line while($sth->execute && $status eq '0');
return @lines;
}
Once again, thanks for the quick and informed assistance! |