in reply to DBI compare columns problem

(@_@) Why are you calling the same SQL at least twice in the script?

You could do something like:
$dbh=$db->prepare("SELECT nvl(mb_award,0.00), nvl(mb_accept,0.00) FROM Items WHERE itemnum=? AND seller=? AND closef='1'"); $dbh->execute($form{'item'}, $fdnum); my ($mb_award,$mb_accept) = $dbh->fetchrow_array(); my $mb_amount_disp = $mb_award > 0.00 ? $mb_award : $mb_accept > 0.00 ? $mb_accept : 0.00; # Assume you have negative values
The most likely reason for your SQL query to fail is perhaps the null values in the columns. nvl(xxx,default) will return the default value if xxx is null.

As a reference, I have put down the following code as an example for database access:

use strict; use DBI; use DBD::Oracle qw(:ora_types); # Connect as Oracle $ENV{ORACLE_HOME}='/users/oracle/OraHome1'; my $dbh=DBI->connect("dbi:Oracle:MyDatabase","username","password"); # Select the some columns from the database my $sth = $dbh->prepare("select a as Alias, b as Bob from MyTable where c=?"); $sth->execute("Some Value"); # One convenient method is to use a hash reference while (my $res = $sth->fetchrow_hashref()) { # You can refer to values using the name of the column/alias # for example... my $alias = $res->{Alias}; my $bob = $res->{Bob}; .... } $sth->finish; $dbh->disconnect();