I am using DBD::mysql and I can get the number of rows by assigning the
result of the execute to a scalar: my $rows = $sth->execute or die "Couldn't execute statement: " . DBI->errstr; maybe this doesn't work with DBD::Oracle? Rob [EMAIL PROTECTED] wrote: #Here's an example which shows what I am trying to accomplish. If I can determine the number of rows before pushing the data, this can simply things for #me when processing the data throught my scripts. # use warnings; use strict; use DBI; use DBD::Oracle;my $sql=q{ select name, location from mytable }; my $dbh; eval { $dbh = DBI->connect("dbi:Oracle:MYDB", 'dbuser', 'dbpass', { RaiseError => 1, AutoCommit => 0, ora_session_mode => 0 } ); }; if ( $@ ) { outprint('end',"$DBI::errstr\n"); } my $sth=$dbh->prepare($sql) or die "Couldn't prepare statement: " . DBI-errstr;$sth->execute or die "Couldn't execute statement: " . DBI->errstr; my $ary; while ($ary = $sth->fetchrow_array()) { #I need to determine number of rows as this will affect whether a matrix is used or not #a boolean variable $matrix could be returned or a ref check done so that the data #processing code can act accordingly #$sth->rows only shows total rows after the while loop is processed #Can I accomplish this without a seperate count(*) statement? # #push @newary,[ @{$ary} ]; # if more than one row #or #push @newary, @{$ary} ; # single row } $sth->finish; $dbh->disconnect; # #ActivePerl 5.8.7 813 #ppm #-DBD-Oracle 1.16 #-DBI 1.48 |
No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.362 / Virus Database: 267.13.3/173 - Release Date: 11/16/2005