Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Re: Overflow of $DBI::rows

by roboticus (Chancellor)
on Dec 07, 2012 at 16:29 UTC ( #1007781=note: print w/replies, xml ) Need Help??

in reply to Overflow of $DBI::rows


I'd try one of two things: Either tell the database to explicitly use a larger numeric datatype in the hope that the driver will handle it:

select convert(numeric(15),count(*)) from ...

or failing that, have the database convert it to a string:

select convert(varchar(32),count(*)) from ...

I've never used Teradata, so I don't know if the syntax would need tweaking, but I'd expect a trick like this to get you to your goal.


When your only tool is a hammer, all problems look like your thumb.

Replies are listed 'Best First'.
Re^2: Overflow of $DBI::rows
by DanEllison (Beadle) on Dec 07, 2012 at 16:35 UTC
    I'm trying to avoid doing the separate SELECT COUNT(*). What we are performing is:
    my $sth = $dbh->prepare("UPDATE ...;") or die DBI::errstr; $sth->execute or die DBI::errstr; printf "Rows: %s\n", $sth->rows;
    and $sth->rows is returning a negative number.


      D'oh! Sorry about that. You were clear, I just had a brain glitch.

      I don't know a way to fix that, but I took a quick look at the ODBC Programmers Reference at msdn, and they're mentioning that the MDAC 2.7 ODBC libraries allow 64-bit values for the SQLLEN data type (used by SQLRowCount). If you're on a Windows platform, it might be sufficient to make sure you're using the latest ODBC libraries. (Of course, the Teradata end might still be using the 32 bit types, in which case you're probably out of luck.)


      When your only tool is a hammer, all problems look like your thumb.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1007781]
What's the matter? Cat got your tongue?...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (9)
As of 2018-05-21 09:29 GMT
Find Nodes?
    Voting Booth?