I created this patch because of this issue (which we have run into), ========================================================================== Parameter Description line Returns a single line of buffered information, excluding a final newline character. You should declare the actual for this parameter as VARCHAR2 (32767) to avoid the risk of "ORA-06502: PL/SQL: numeric or value error: character string buffer too small".
status If the call completes successfully, then the status returns as 0. If there are no more lines in the buffer, then the status is 1. ========================================================================== --- Oracle.pm.orig 2010-03-31 15:27:16.000000000 -0500 +++ Oracle.pm 2010-03-31 16:09:37.000000000 -0500 @@ -766,8 +766,11 @@ my $sth = $dbh->prepare_cached("begin dbms_output.get_line(:l, :s); end;") or return; my ($line, $status, @lines); + my $version = join ".", @{ ora_server_version($dbh) }[0..1]; + my $len = $version >= 10.2 ? 32767 : 400; + # line can be greater that 255 (e.g. 7 byte date is expanded on output) - $sth->bind_param_inout(':l', \$line, 400, { ora_type => 1 }); + $sth->bind_param_inout(':l', \$line, $len, { ora_type => 1 }); $sth->bind_param_inout(':s', \$status, 20, { ora_type => 1 }); if (!wantarray) { $sth->execute or return undef; Thanks, Scott