#! /usr/bin/perl use DBI; use strict; use Data::Dumper; my $dbh = DBI->connect("DBI:DB2:xxx",'xxx','xxx',{ RaiseError => 0, AutoCommit => 1 }) or die ("Could not connect to database :".DBI->errstr); my %hash = ( '2017-01-01 00:00:00' => '2017-01-31 00:00:00', '2017-02-01 00:00:00' => '2017-02-28 00:00:00', '2017-03-01 00:00:00' => '2017-03-31 00:00:00', '2017-04-01 00:00:00' => '2017-04-30 00:00:00', '2017-05-01 00:00:00' => '2017-05-31 00:00:00', '2017-06-01 00:00:00' => '2017-06-30 00:00:00', '2017-07-01 00:00:00' => '2017-07-31 00:00:00', '2017-08-01 00:00:00' => '2017-08-31 00:00:00', '2017-09-01 00:00:00' => '2017-09-30 00:00:00' ); #open(my $fh , "+>/var/www/bin/filesample.txt"); foreach my $key(sort keys %hash) { chomp($key); my $sql = "select distinct FID_CUST from session where DAT_END between '$key' and '$hash{$key}'"; print "\$sql = $sql\n"; my $sth = $dbh->prepare($sql); $sth->execute() or die "Couldn't execute statement: $DBI::errstr"; print "sth: $sth\n"; while (my @arr = $sth->fetchrow_array()){ print "in while\n"; print "{@arr}\n"; } $sth->finish(); } #close FH; $dbh->disconnect;