DBD::ODBC::st execute failed: [unixODBC]ERROR: crossed reserve : Out of memory
DBD::ODBC::st execute failed: [unixODBC]ERROR: crossed reserve : Out of memory
am 05.09.2006 19:38:19 von Peter.Loo
------_=_NextPart_001_01C6D112.13D0B833
Content-Type: text/plain;
charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable
Hi,
=20
Will you kindly tell me what this error message is talking about?
=20
DBD::ODBC::st execute failed: [unixODBC]ERROR: crossed reserve : Out of
memory
(SQL-HY000)(DBD: st_execute/SQLExecute err=3D-1) at
/usr/local/apps/common/devl/bin/GlobalRoutines.pm line 88, line 53.
=20
Thanks.
=20
Peter
------_=_NextPart_001_01C6D112.13D0B833--
RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve : Out of memory
am 05.09.2006 19:40:53 von Ron.Reidy
Sure,
What are you doing in GlabalRoutines.pm at line 88? Are you fetching a
large result set into memory (hash or array)?
--
Ron Reidy
Lead DBA
Array BioPharma, Inc.
-----Original Message-----
From: Loo, Peter # PHX [mailto:Peter.Loo@source.wolterskluwer.com]=20
Sent: Tuesday, September 05, 2006 11:38 AM
To: DBI-Users
Subject: DBD::ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
: Out of memory
Hi,
=20
Will you kindly tell me what this error message is talking about?
=20
DBD::ODBC::st execute failed: [unixODBC]ERROR: crossed reserve : Out of
memory
(SQL-HY000)(DBD: st_execute/SQLExecute err=3D-1) at
/usr/local/apps/common/devl/bin/GlobalRoutines.pm line 88, line 53.
=20
Thanks.
=20
Peter
This electronic message transmission is a PRIVATE communication which =
contains
information which may be confidential or privileged. The information is =
intended=20
to be for the use of the individual or entity named above. If you are =
not the=20
intended recipient, please be aware that any disclosure, copying, =
distribution=20
or use of the contents of this information is prohibited. Please notify =
the
sender of the delivery error by replying to this message, or notify us =
by
telephone (877-633-2436, ext. 0), and then delete it from your system.
RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve : Out of memory
am 05.09.2006 19:45:24 von Peter.Loo
Hi Ron,
I am returning approximately 3.8 million rows. Here is the code:
$sqlString =3D qq{ select distinct x.ptnt_gid, x.prdct_gid,
x.rx_fill_dte,
x.claim_gid, x.ovrd_days_sply_nbr,
x.clfsn_grace_prd_nbr, 'N',
x.rx_fill_dte +
x.ovrd_days_sply_nbr,
x.rx_fill_dte -
to_date('1980-01-01', 'YYYY-MM-DD'),
x.rx_fill_dte +
(x.ovrd_days_sply_nbr * 2)
from p_dlvrb_rx_claim_extract x,
p_dlvrb_ptnt_list y
where x.dlvrb_gid =3D y.dlvrb_gid
and x.ptnt_gid =3D y.ptnt_gid
order by x.ptnt_gid, x.prdct_gid, x.rx_fill_dte,
x.claim_gid };
$sqlString =3D~ s/\s+/ /g;
print STDERR "sqlString is: $sqlString\n";
$sth =3D sub_prepare($driver, $dbh, $sqlString);
$sth =3D sub_execute($driver, $dbh, $sth);
my ($ptnt, $prdct, $fill_dte, $claim, $days_sply, $grace, $class,
$cted, $since);
$sth->bind_columns( undef, \$ptnt, \$prdct, \$fill_dte, \$claim,
\$days_sply, \$grace, \$class, \$cted, \$since, \$twice );=20
LINE 88 of GlobalRoutines.pm
sub sub_execute($$$) {
print STDERR "\n***** sub_execute() *****\n\n";
my ($dbDriver, $dbh, $sth) =3D @_;
print STDERR "DATABASE DRIVER IS: $dbDriver\n";
print STDERR "DATABASE HANDLE IS: $dbh\n";
print STDERR "STATEMENT HANDLE IS: $sth\n";
eval { $sth->execute(); }; <<<<<<<<<<<<<<<<<<<<<<
if ($@) {
$MESSAGE =3D "sub_execute() - $@";
$STATUS =3D $FAILURE;
sub_exit();
}
print STDERR "RETURN STATEMENT HANDLE IS: $sth\n\n";
return($sth);
} #<===3D (End of sub_execute)
=20
Peter
-----Original Message-----
From: Reidy, Ron [mailto:Ron.Reidy@arraybiopharma.com]=20
Sent: Tuesday, September 05, 2006 10:41 AM
To: Loo, Peter # PHX; DBI-Users
Subject: RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
: Out of memory
Sure,
What are you doing in GlabalRoutines.pm at line 88? Are you fetching a
large result set into memory (hash or array)?
--
Ron Reidy
Lead DBA
Array BioPharma, Inc.
-----Original Message-----
From: Loo, Peter # PHX [mailto:Peter.Loo@source.wolterskluwer.com]
Sent: Tuesday, September 05, 2006 11:38 AM
To: DBI-Users
Subject: DBD::ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
: Out of memory
Hi,
=20
Will you kindly tell me what this error message is talking about?
=20
DBD::ODBC::st execute failed: [unixODBC]ERROR: crossed reserve : Out of
memory
(SQL-HY000)(DBD: st_execute/SQLExecute err=3D-1) at
/usr/local/apps/common/devl/bin/GlobalRoutines.pm line 88, line 53.
=20
Thanks.
=20
Peter
This electronic message transmission is a PRIVATE communication which
contains information which may be confidential or privileged. The
information is intended to be for the use of the individual or entity
named above. If you are not the intended recipient, please be aware that
any disclosure, copying, distribution or use of the contents of this
information is prohibited. Please notify the sender of the delivery
error by replying to this message, or notify us by telephone
(877-633-2436, ext. 0), and then delete it from your system.
This E-mail message is for the sole use of the intended recipient(s) and
may contain confidential and privileged information. Any unauthorized
review, use, disclosure or distribution is prohibited. If you are not
the intended recipient, please contact the sender by reply E-mail, and
destroy all copies of the original message.
RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve : Out of memory
am 05.09.2006 20:14:31 von Peter.Loo
Now I am getting the following error after fetching approximately
350,000 rows.
DBD::ODBC::st fetch failed: [unixODBC] (SQL-)(DBD: st_fetch/SQLFetch
err=3D-1) at /usr/local/apps/ppv/devl/bin/sdl.pl line 228, line 53. =
Peter
-----Original Message-----
From: Loo, Peter # PHX [mailto:Peter.Loo@source.wolterskluwer.com]=20
Sent: Tuesday, September 05, 2006 10:45 AM
To: Reidy, Ron; DBI-Users
Subject: RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
: Out of memory
Hi Ron,
I am returning approximately 3.8 million rows. Here is the code:
$sqlString =3D qq{ select distinct x.ptnt_gid, x.prdct_gid,
x.rx_fill_dte,
x.claim_gid, x.ovrd_days_sply_nbr,
x.clfsn_grace_prd_nbr, 'N',
x.rx_fill_dte +
x.ovrd_days_sply_nbr,
x.rx_fill_dte -
to_date('1980-01-01', 'YYYY-MM-DD'),
x.rx_fill_dte +
(x.ovrd_days_sply_nbr * 2)
from p_dlvrb_rx_claim_extract x,
p_dlvrb_ptnt_list y
where x.dlvrb_gid =3D y.dlvrb_gid
and x.ptnt_gid =3D y.ptnt_gid
order by x.ptnt_gid, x.prdct_gid, x.rx_fill_dte,
x.claim_gid };
$sqlString =3D~ s/\s+/ /g;
print STDERR "sqlString is: $sqlString\n";
$sth =3D sub_prepare($driver, $dbh, $sqlString);
$sth =3D sub_execute($driver, $dbh, $sth);
my ($ptnt, $prdct, $fill_dte, $claim, $days_sply, $grace, $class,
$cted, $since);
$sth->bind_columns( undef, \$ptnt, \$prdct, \$fill_dte, \$claim,
\$days_sply, \$grace, \$class, \$cted, \$since, \$twice );=20
LINE 88 of GlobalRoutines.pm
sub sub_execute($$$) {
print STDERR "\n***** sub_execute() *****\n\n";
my ($dbDriver, $dbh, $sth) =3D @_;
print STDERR "DATABASE DRIVER IS: $dbDriver\n";
print STDERR "DATABASE HANDLE IS: $dbh\n";
print STDERR "STATEMENT HANDLE IS: $sth\n";
eval { $sth->execute(); }; <<<<<<<<<<<<<<<<<<<<<<
if ($@) {
$MESSAGE =3D "sub_execute() - $@";
$STATUS =3D $FAILURE;
sub_exit();
}
print STDERR "RETURN STATEMENT HANDLE IS: $sth\n\n";
return($sth);
} #<===3D (End of sub_execute)
=20
Peter
-----Original Message-----
From: Reidy, Ron [mailto:Ron.Reidy@arraybiopharma.com]
Sent: Tuesday, September 05, 2006 10:41 AM
To: Loo, Peter # PHX; DBI-Users
Subject: RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
: Out of memory
Sure,
What are you doing in GlabalRoutines.pm at line 88? Are you fetching a
large result set into memory (hash or array)?
--
Ron Reidy
Lead DBA
Array BioPharma, Inc.
-----Original Message-----
From: Loo, Peter # PHX [mailto:Peter.Loo@source.wolterskluwer.com]
Sent: Tuesday, September 05, 2006 11:38 AM
To: DBI-Users
Subject: DBD::ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
: Out of memory
Hi,
=20
Will you kindly tell me what this error message is talking about?
=20
DBD::ODBC::st execute failed: [unixODBC]ERROR: crossed reserve : Out of
memory
(SQL-HY000)(DBD: st_execute/SQLExecute err=3D-1) at
/usr/local/apps/common/devl/bin/GlobalRoutines.pm line 88, line 53.
=20
Thanks.
=20
Peter
This electronic message transmission is a PRIVATE communication which
contains information which may be confidential or privileged. The
information is intended to be for the use of the individual or entity
named above. If you are not the intended recipient, please be aware that
any disclosure, copying, distribution or use of the contents of this
information is prohibited. Please notify the sender of the delivery
error by replying to this message, or notify us by telephone
(877-633-2436, ext. 0), and then delete it from your system.
This E-mail message is for the sole use of the intended recipient(s) and
may contain confidential and privileged information. Any unauthorized
review, use, disclosure or distribution is prohibited. If you are not
the intended recipient, please contact the sender by reply E-mail, and
destroy all copies of the original message.
This E-mail message is for the sole use of the intended recipient(s) and
may contain confidential and privileged information. Any unauthorized
review, use, disclosure or distribution is prohibited. If you are not
the intended recipient, please contact the sender by reply E-mail, and
destroy all copies of the original message.
RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve : Out of memory
am 05.09.2006 20:34:03 von Ron.Reidy
So, which is it - errors at 3.8M rows, or 350K rows? When you get
errors at 350K, are you array fetching or row-at-a-time fetching? What
does -1 mean in the error message?
-----Original Message-----
From: Loo, Peter # PHX [mailto:Peter.Loo@source.wolterskluwer.com]=20
Sent: Tuesday, September 05, 2006 12:15 PM
To: Loo, Peter # PHX; Reidy, Ron; DBI-Users
Subject: RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
: Out of memory
Now I am getting the following error after fetching approximately
350,000 rows.
DBD::ODBC::st fetch failed: [unixODBC] (SQL-)(DBD: st_fetch/SQLFetch
err=3D-1) at /usr/local/apps/ppv/devl/bin/sdl.pl line 228, line 53. =
Peter
-----Original Message-----
From: Loo, Peter # PHX [mailto:Peter.Loo@source.wolterskluwer.com]=20
Sent: Tuesday, September 05, 2006 10:45 AM
To: Reidy, Ron; DBI-Users
Subject: RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
: Out of memory
Hi Ron,
I am returning approximately 3.8 million rows. Here is the code:
$sqlString =3D qq{ select distinct x.ptnt_gid, x.prdct_gid,
x.rx_fill_dte,
x.claim_gid, x.ovrd_days_sply_nbr,
x.clfsn_grace_prd_nbr, 'N',
x.rx_fill_dte +
x.ovrd_days_sply_nbr,
x.rx_fill_dte -
to_date('1980-01-01', 'YYYY-MM-DD'),
x.rx_fill_dte +
(x.ovrd_days_sply_nbr * 2)
from p_dlvrb_rx_claim_extract x,
p_dlvrb_ptnt_list y
where x.dlvrb_gid =3D y.dlvrb_gid
and x.ptnt_gid =3D y.ptnt_gid
order by x.ptnt_gid, x.prdct_gid, x.rx_fill_dte,
x.claim_gid };
$sqlString =3D~ s/\s+/ /g;
print STDERR "sqlString is: $sqlString\n";
$sth =3D sub_prepare($driver, $dbh, $sqlString);
$sth =3D sub_execute($driver, $dbh, $sth);
my ($ptnt, $prdct, $fill_dte, $claim, $days_sply, $grace, $class,
$cted, $since);
$sth->bind_columns( undef, \$ptnt, \$prdct, \$fill_dte, \$claim,
\$days_sply, \$grace, \$class, \$cted, \$since, \$twice );=20
LINE 88 of GlobalRoutines.pm
sub sub_execute($$$) {
print STDERR "\n***** sub_execute() *****\n\n";
my ($dbDriver, $dbh, $sth) =3D @_;
print STDERR "DATABASE DRIVER IS: $dbDriver\n";
print STDERR "DATABASE HANDLE IS: $dbh\n";
print STDERR "STATEMENT HANDLE IS: $sth\n";
eval { $sth->execute(); }; <<<<<<<<<<<<<<<<<<<<<<
if ($@) {
$MESSAGE =3D "sub_execute() - $@";
$STATUS =3D $FAILURE;
sub_exit();
}
print STDERR "RETURN STATEMENT HANDLE IS: $sth\n\n";
return($sth);
} #<===3D (End of sub_execute)
=20
Peter
-----Original Message-----
From: Reidy, Ron [mailto:Ron.Reidy@arraybiopharma.com]
Sent: Tuesday, September 05, 2006 10:41 AM
To: Loo, Peter # PHX; DBI-Users
Subject: RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
: Out of memory
Sure,
What are you doing in GlabalRoutines.pm at line 88? Are you fetching a
large result set into memory (hash or array)?
--
Ron Reidy
Lead DBA
Array BioPharma, Inc.
-----Original Message-----
From: Loo, Peter # PHX [mailto:Peter.Loo@source.wolterskluwer.com]
Sent: Tuesday, September 05, 2006 11:38 AM
To: DBI-Users
Subject: DBD::ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
: Out of memory
Hi,
=20
Will you kindly tell me what this error message is talking about?
=20
DBD::ODBC::st execute failed: [unixODBC]ERROR: crossed reserve : Out of
memory
(SQL-HY000)(DBD: st_execute/SQLExecute err=3D-1) at
/usr/local/apps/common/devl/bin/GlobalRoutines.pm line 88, line 53.
=20
Thanks.
=20
Peter
This electronic message transmission is a PRIVATE communication which
contains information which may be confidential or privileged. The
information is intended to be for the use of the individual or entity
named above. If you are not the intended recipient, please be aware that
any disclosure, copying, distribution or use of the contents of this
information is prohibited. Please notify the sender of the delivery
error by replying to this message, or notify us by telephone
(877-633-2436, ext. 0), and then delete it from your system.
This E-mail message is for the sole use of the intended recipient(s) and
may contain confidential and privileged information. Any unauthorized
review, use, disclosure or distribution is prohibited. If you are not
the intended recipient, please contact the sender by reply E-mail, and
destroy all copies of the original message.
This E-mail message is for the sole use of the intended recipient(s) and
may contain confidential and privileged information. Any unauthorized
review, use, disclosure or distribution is prohibited. If you are not
the intended recipient, please contact the sender by reply E-mail, and
destroy all copies of the original message.
RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve : Out of memory
am 05.09.2006 20:39:51 von Peter.Loo
Hi Ron,
I am not array fetching, instead, I am using $sth->bind_columns with the
while ( $sth->fetch() ). Earlier, I did not even get to the while loop
before it failed with "Out of memory" error. Now it is failing with a
fetch error approximately after about 350,000 rows.
=20
Peter
-----Original Message-----
From: Reidy, Ron [mailto:Ron.Reidy@arraybiopharma.com]=20
Sent: Tuesday, September 05, 2006 11:34 AM
To: Loo, Peter # PHX; DBI-Users
Subject: RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
: Out of memory
So, which is it - errors at 3.8M rows, or 350K rows? When you get
errors at 350K, are you array fetching or row-at-a-time fetching? What
does -1 mean in the error message?
-----Original Message-----
From: Loo, Peter # PHX [mailto:Peter.Loo@source.wolterskluwer.com]
Sent: Tuesday, September 05, 2006 12:15 PM
To: Loo, Peter # PHX; Reidy, Ron; DBI-Users
Subject: RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
: Out of memory
Now I am getting the following error after fetching approximately
350,000 rows.
DBD::ODBC::st fetch failed: [unixODBC] (SQL-)(DBD: st_fetch/SQLFetch
err=3D-1) at /usr/local/apps/ppv/devl/bin/sdl.pl line 228, line 53. =
Peter
-----Original Message-----
From: Loo, Peter # PHX [mailto:Peter.Loo@source.wolterskluwer.com]=20
Sent: Tuesday, September 05, 2006 10:45 AM
To: Reidy, Ron; DBI-Users
Subject: RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
: Out of memory
Hi Ron,
I am returning approximately 3.8 million rows. Here is the code:
$sqlString =3D qq{ select distinct x.ptnt_gid, x.prdct_gid,
x.rx_fill_dte,
x.claim_gid, x.ovrd_days_sply_nbr,
x.clfsn_grace_prd_nbr, 'N',
x.rx_fill_dte +
x.ovrd_days_sply_nbr,
x.rx_fill_dte -
to_date('1980-01-01', 'YYYY-MM-DD'),
x.rx_fill_dte +
(x.ovrd_days_sply_nbr * 2)
from p_dlvrb_rx_claim_extract x,
p_dlvrb_ptnt_list y
where x.dlvrb_gid =3D y.dlvrb_gid
and x.ptnt_gid =3D y.ptnt_gid
order by x.ptnt_gid, x.prdct_gid, x.rx_fill_dte,
x.claim_gid };
$sqlString =3D~ s/\s+/ /g;
print STDERR "sqlString is: $sqlString\n";
$sth =3D sub_prepare($driver, $dbh, $sqlString);
$sth =3D sub_execute($driver, $dbh, $sth);
my ($ptnt, $prdct, $fill_dte, $claim, $days_sply, $grace, $class,
$cted, $since);
$sth->bind_columns( undef, \$ptnt, \$prdct, \$fill_dte, \$claim,
\$days_sply, \$grace, \$class, \$cted, \$since, \$twice );=20
LINE 88 of GlobalRoutines.pm
sub sub_execute($$$) {
print STDERR "\n***** sub_execute() *****\n\n";
my ($dbDriver, $dbh, $sth) =3D @_;
print STDERR "DATABASE DRIVER IS: $dbDriver\n";
print STDERR "DATABASE HANDLE IS: $dbh\n";
print STDERR "STATEMENT HANDLE IS: $sth\n";
eval { $sth->execute(); }; <<<<<<<<<<<<<<<<<<<<<<
if ($@) {
$MESSAGE =3D "sub_execute() - $@";
$STATUS =3D $FAILURE;
sub_exit();
}
print STDERR "RETURN STATEMENT HANDLE IS: $sth\n\n";
return($sth);
} #<===3D (End of sub_execute)
=20
Peter
-----Original Message-----
From: Reidy, Ron [mailto:Ron.Reidy@arraybiopharma.com]
Sent: Tuesday, September 05, 2006 10:41 AM
To: Loo, Peter # PHX; DBI-Users
Subject: RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
: Out of memory
Sure,
What are you doing in GlabalRoutines.pm at line 88? Are you fetching a
large result set into memory (hash or array)?
--
Ron Reidy
Lead DBA
Array BioPharma, Inc.
-----Original Message-----
From: Loo, Peter # PHX [mailto:Peter.Loo@source.wolterskluwer.com]
Sent: Tuesday, September 05, 2006 11:38 AM
To: DBI-Users
Subject: DBD::ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
: Out of memory
Hi,
=20
Will you kindly tell me what this error message is talking about?
=20
DBD::ODBC::st execute failed: [unixODBC]ERROR: crossed reserve : Out of
memory
(SQL-HY000)(DBD: st_execute/SQLExecute err=3D-1) at
/usr/local/apps/common/devl/bin/GlobalRoutines.pm line 88, line 53.
=20
Thanks.
=20
Peter
This electronic message transmission is a PRIVATE communication which
contains information which may be confidential or privileged. The
information is intended to be for the use of the individual or entity
named above. If you are not the intended recipient, please be aware that
any disclosure, copying, distribution or use of the contents of this
information is prohibited. Please notify the sender of the delivery
error by replying to this message, or notify us by telephone
(877-633-2436, ext. 0), and then delete it from your system.
This E-mail message is for the sole use of the intended recipient(s) and
may contain confidential and privileged information. Any unauthorized
review, use, disclosure or distribution is prohibited. If you are not
the intended recipient, please contact the sender by reply E-mail, and
destroy all copies of the original message.
This E-mail message is for the sole use of the intended recipient(s) and
may contain confidential and privileged information. Any unauthorized
review, use, disclosure or distribution is prohibited. If you are not
the intended recipient, please contact the sender by reply E-mail, and
destroy all copies of the original message.
This E-mail message is for the sole use of the intended recipient(s) and
may contain confidential and privileged information. Any unauthorized
review, use, disclosure or distribution is prohibited. If you are not
the intended recipient, please contact the sender by reply E-mail, and
destroy all copies of the original message.
RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve :
am 05.09.2006 20:45:22 von Martin.Evans
On Tue, 2006-09-05 at 12:34 -0600, Reidy, Ron wrote:
> So, which is it - errors at 3.8M rows, or 350K rows? When you get
> errors at 350K, are you array fetching or row-at-a-time fetching? What
> does -1 mean in the error message?
I can't tell what driver Peter is using because it has not inserted its
name into the error - this is a bug in itself - it should appear in [ ]
after [unixODBC]. The -1 is SQL_ERROR and there should be a native error
too - that is also missing. I've no idea why it shows "SQL-" - this also
seems incorrect.
This probably does not help much other than to clarify that this driver
is not fully ODBC complaint in its error reporting.
Martin
--
Martin J. Evans
Easysoft Limited
http://www.easysoft.com
> -----Original Message-----
> From: Loo, Peter # PHX [mailto:Peter.Loo@source.wolterskluwer.com]
> Sent: Tuesday, September 05, 2006 12:15 PM
> To: Loo, Peter # PHX; Reidy, Ron; DBI-Users
> Subject: RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
> : Out of memory
>
>
> Now I am getting the following error after fetching approximately
> 350,000 rows.
>
> DBD::ODBC::st fetch failed: [unixODBC] (SQL-)(DBD: st_fetch/SQLFetch
> err=-1) at /usr/local/apps/ppv/devl/bin/sdl.pl line 228, line 53.
>
> Peter
>
> -----Original Message-----
> From: Loo, Peter # PHX [mailto:Peter.Loo@source.wolterskluwer.com]
> Sent: Tuesday, September 05, 2006 10:45 AM
> To: Reidy, Ron; DBI-Users
> Subject: RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
> : Out of memory
>
>
> Hi Ron,
>
> I am returning approximately 3.8 million rows. Here is the code:
>
> $sqlString = qq{ select distinct x.ptnt_gid, x.prdct_gid,
> x.rx_fill_dte,
> x.claim_gid, x.ovrd_days_sply_nbr,
> x.clfsn_grace_prd_nbr, 'N',
> x.rx_fill_dte +
> x.ovrd_days_sply_nbr,
> x.rx_fill_dte -
> to_date('1980-01-01', 'YYYY-MM-DD'),
> x.rx_fill_dte +
> (x.ovrd_days_sply_nbr * 2)
> from p_dlvrb_rx_claim_extract x,
> p_dlvrb_ptnt_list y
> where x.dlvrb_gid = y.dlvrb_gid
> and x.ptnt_gid = y.ptnt_gid
> order by x.ptnt_gid, x.prdct_gid, x.rx_fill_dte,
> x.claim_gid };
> $sqlString =~ s/\s+/ /g;
> print STDERR "sqlString is: $sqlString\n";
> $sth = sub_prepare($driver, $dbh, $sqlString);
> $sth = sub_execute($driver, $dbh, $sth);
> my ($ptnt, $prdct, $fill_dte, $claim, $days_sply, $grace, $class,
> $cted, $since);
> $sth->bind_columns( undef, \$ptnt, \$prdct, \$fill_dte, \$claim,
> \$days_sply, \$grace, \$class, \$cted, \$since, \$twice );
>
>
> LINE 88 of GlobalRoutines.pm
>
> sub sub_execute($$$) {
> print STDERR "\n***** sub_execute() *****\n\n";
> my ($dbDriver, $dbh, $sth) = @_;
> print STDERR "DATABASE DRIVER IS: $dbDriver\n";
> print STDERR "DATABASE HANDLE IS: $dbh\n";
> print STDERR "STATEMENT HANDLE IS: $sth\n";
> eval { $sth->execute(); }; <<<<<<<<<<<<<<<<<<<<<<
> if ($@) {
> $MESSAGE = "sub_execute() - $@";
> $STATUS = $FAILURE;
> sub_exit();
> }
> print STDERR "RETURN STATEMENT HANDLE IS: $sth\n\n";
> return($sth);
> } #<=== (End of sub_execute)
>
>
> Peter
>
> -----Original Message-----
> From: Reidy, Ron [mailto:Ron.Reidy@arraybiopharma.com]
> Sent: Tuesday, September 05, 2006 10:41 AM
> To: Loo, Peter # PHX; DBI-Users
> Subject: RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
> : Out of memory
>
> Sure,
>
> What are you doing in GlabalRoutines.pm at line 88? Are you fetching a
> large result set into memory (hash or array)?
>
> --
> Ron Reidy
> Lead DBA
> Array BioPharma, Inc.
>
> -----Original Message-----
> From: Loo, Peter # PHX [mailto:Peter.Loo@source.wolterskluwer.com]
> Sent: Tuesday, September 05, 2006 11:38 AM
> To: DBI-Users
> Subject: DBD::ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
> : Out of memory
>
> Hi,
>
> Will you kindly tell me what this error message is talking about?
>
> DBD::ODBC::st execute failed: [unixODBC]ERROR: crossed reserve : Out of
> memory
> (SQL-HY000)(DBD: st_execute/SQLExecute err=-1) at
> /usr/local/apps/common/devl/bin/GlobalRoutines.pm line 88, line 53.
>
> Thanks.
>
> Peter
>
> This electronic message transmission is a PRIVATE communication which
> contains information which may be confidential or privileged. The
> information is intended to be for the use of the individual or entity
> named above. If you are not the intended recipient, please be aware that
> any disclosure, copying, distribution or use of the contents of this
> information is prohibited. Please notify the sender of the delivery
> error by replying to this message, or notify us by telephone
> (877-633-2436, ext. 0), and then delete it from your system.
>
>
>
> This E-mail message is for the sole use of the intended recipient(s) and
> may contain confidential and privileged information. Any unauthorized
> review, use, disclosure or distribution is prohibited. If you are not
> the intended recipient, please contact the sender by reply E-mail, and
> destroy all copies of the original message.
>
>
> This E-mail message is for the sole use of the intended recipient(s) and
> may contain confidential and privileged information. Any unauthorized
> review, use, disclosure or distribution is prohibited. If you are not
> the intended recipient, please contact the sender by reply E-mail, and
> destroy all copies of the original message.
>
>
RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve :Out of memory
am 05.09.2006 21:09:55 von Peter.Loo
Martin,
Here is the version:
$ perl -M'DBD::ODBC' -le 'print $DBD::ODBC::VERSION'
1.13=20
=20
Peter
-----Original Message-----
From: Martin J. Evans [mailto:martin.evans@easysoft.com]=20
Sent: Tuesday, September 05, 2006 11:45 AM
To: dbi-users@perl.org
Subject: RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
:Out of memory
On Tue, 2006-09-05 at 12:34 -0600, Reidy, Ron wrote:
> So, which is it - errors at 3.8M rows, or 350K rows? When you get=20
> errors at 350K, are you array fetching or row-at-a-time fetching? =20
> What does -1 mean in the error message?
I can't tell what driver Peter is using because it has not inserted its
name into the error - this is a bug in itself - it should appear in [ ]
after [unixODBC]. The -1 is SQL_ERROR and there should be a native error
too - that is also missing. I've no idea why it shows "SQL-" - this also
seems incorrect.
This probably does not help much other than to clarify that this driver
is not fully ODBC complaint in its error reporting.
Martin
--
Martin J. Evans
Easysoft Limited
http://www.easysoft.com
> -----Original Message-----
> From: Loo, Peter # PHX [mailto:Peter.Loo@source.wolterskluwer.com]
> Sent: Tuesday, September 05, 2006 12:15 PM
> To: Loo, Peter # PHX; Reidy, Ron; DBI-Users
> Subject: RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed=20
> reserve
> : Out of memory
>=20
>=20
> Now I am getting the following error after fetching approximately=20
> 350,000 rows.
>=20
> DBD::ODBC::st fetch failed: [unixODBC] (SQL-)(DBD: st_fetch/SQLFetch
> err=3D-1) at /usr/local/apps/ppv/devl/bin/sdl.pl line 228, line =
53.
>=20
> Peter
>=20
> -----Original Message-----
> From: Loo, Peter # PHX [mailto:Peter.Loo@source.wolterskluwer.com]
> Sent: Tuesday, September 05, 2006 10:45 AM
> To: Reidy, Ron; DBI-Users
> Subject: RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed=20
> reserve
> : Out of memory
>=20
>=20
> Hi Ron,
>=20
> I am returning approximately 3.8 million rows. Here is the code:
>=20
> $sqlString =3D qq{ select distinct x.ptnt_gid, x.prdct_gid,
> x.rx_fill_dte,
> x.claim_gid,
x.ovrd_days_sply_nbr,
> x.clfsn_grace_prd_nbr, 'N',
> x.rx_fill_dte +=20
> x.ovrd_days_sply_nbr,
> x.rx_fill_dte -=20
> to_date('1980-01-01', 'YYYY-MM-DD'),
> x.rx_fill_dte +=20
> (x.ovrd_days_sply_nbr * 2)
> from p_dlvrb_rx_claim_extract x,
> p_dlvrb_ptnt_list y
> where x.dlvrb_gid =3D y.dlvrb_gid
> and x.ptnt_gid =3D y.ptnt_gid
> order by x.ptnt_gid, x.prdct_gid, x.rx_fill_dte,=20
> x.claim_gid };
> $sqlString =3D~ s/\s+/ /g;
> print STDERR "sqlString is: $sqlString\n";
> $sth =3D sub_prepare($driver, $dbh, $sqlString);
> $sth =3D sub_execute($driver, $dbh, $sth);
> my ($ptnt, $prdct, $fill_dte, $claim, $days_sply, $grace, $class,=20
> $cted, $since);
> $sth->bind_columns( undef, \$ptnt, \$prdct, \$fill_dte, \$claim,=20
> \$days_sply, \$grace, \$class, \$cted, \$since, \$twice );
>=20
>=20
> LINE 88 of GlobalRoutines.pm
>=20
> sub sub_execute($$$) {
> print STDERR "\n***** sub_execute() *****\n\n";
> my ($dbDriver, $dbh, $sth) =3D @_;
> print STDERR "DATABASE DRIVER IS: $dbDriver\n";
> print STDERR "DATABASE HANDLE IS: $dbh\n";
> print STDERR "STATEMENT HANDLE IS: $sth\n";
> eval { $sth->execute(); }; <<<<<<<<<<<<<<<<<<<<<<
> if ($@) {
> $MESSAGE =3D "sub_execute() - $@";
> $STATUS =3D $FAILURE;
> sub_exit();
> }
> print STDERR "RETURN STATEMENT HANDLE IS: $sth\n\n";
> return($sth);
> } #<===3D (End of sub_execute)
>=20
> =20
> Peter
>=20
> -----Original Message-----
> From: Reidy, Ron [mailto:Ron.Reidy@arraybiopharma.com]
> Sent: Tuesday, September 05, 2006 10:41 AM
> To: Loo, Peter # PHX; DBI-Users
> Subject: RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed=20
> reserve
> : Out of memory
>=20
> Sure,
>=20
> What are you doing in GlabalRoutines.pm at line 88? Are you fetching=20
> a large result set into memory (hash or array)?
>=20
> --
> Ron Reidy
> Lead DBA
> Array BioPharma, Inc.
>=20
> -----Original Message-----
> From: Loo, Peter # PHX [mailto:Peter.Loo@source.wolterskluwer.com]
> Sent: Tuesday, September 05, 2006 11:38 AM
> To: DBI-Users
> Subject: DBD::ODBC::st execute failed: [unixODBC]ERROR: crossed=20
> reserve
> : Out of memory
>=20
> Hi,
> =20
> Will you kindly tell me what this error message is talking about?
> =20
> DBD::ODBC::st execute failed: [unixODBC]ERROR: crossed reserve : Out=20
> of memory
> (SQL-HY000)(DBD: st_execute/SQLExecute err=3D-1) at=20
> /usr/local/apps/common/devl/bin/GlobalRoutines.pm line 88, line
53.
> =20
> Thanks.
> =20
> Peter
>=20
> This electronic message transmission is a PRIVATE communication which=20
> contains information which may be confidential or privileged. The=20
> information is intended to be for the use of the individual or entity=20
> named above. If you are not the intended recipient, please be aware=20
> that any disclosure, copying, distribution or use of the contents of=20
> this information is prohibited. Please notify the sender of the=20
> delivery error by replying to this message, or notify us by telephone=20
> (877-633-2436, ext. 0), and then delete it from your system.
>=20
>=20
>=20
> This E-mail message is for the sole use of the intended recipient(s)=20
> and may contain confidential and privileged information. Any=20
> unauthorized review, use, disclosure or distribution is prohibited. =20
> If you are not the intended recipient, please contact the sender by=20
> reply E-mail, and destroy all copies of the original message.
>=20
>=20
> This E-mail message is for the sole use of the intended recipient(s)=20
> and may contain confidential and privileged information. Any=20
> unauthorized review, use, disclosure or distribution is prohibited. =20
> If you are not the intended recipient, please contact the sender by=20
> reply E-mail, and destroy all copies of the original message.
>=20
>=20
This E-mail message is for the sole use of the intended recipient(s) and
may contain confidential and privileged information. Any unauthorized
review, use, disclosure or distribution is prohibited. If you are not
the intended recipient, please contact the sender by reply E-mail, and
destroy all copies of the original message.