my $sql2 = 'select name,value from A.Database2 minus select name,value from A.database1'; my $sth2 = $dbh1->prepare($sql2); $sth2->execute(); while (my @row = $sth2->fetchrow_array) { print join(',', @row), "\n\n"; chomp ; push(@var1,$row[0]); } foreach (@var1) { print "$_\n"; } my $sth3 = $dbh->prepare("select name,value from A.database1 where name in (".join(",",@var1).")") or die "Can't prepare statement: $DBI::errstr"; $sth3->execute(@var1); while (my @row = $sth3->fetchrow_array) { print join(", ", @row), "\n"; DBD::Oracle::db prepare failed: ORA-00904: "APR_IMDG_MODE_ENABLED": invalid identifier (DBD ERROR: error possibly near <*> indicator at char 144 in 'select name,value from A where name in (a,b,c,d,<*>e)') [for Statement "select name,value from A where name in (a,b,c,d,e)"] at hello.pl line 102. Uncaught exception from user code: Can't prepare statement: ORA-00904: "APR_IMDG_MODE_ENABLED": invalid identifier (DBD ERROR: error possibly near <*> indicator at char 144 in 'select name,value from where name in (a,b,c,d,<*>e)') at hello.pl line 102. at hello.pl line 102