my $dbh = DBI->connect("dbi:CSV:f_dir=$_ENV::TempFilesDIR;csv_sep_char=\\~") or die $DBI::errstr; $dbh->{'csv_tables'}->{'new_entrant'} = { 'file' => 'Aviva_cimp_new_entrant.txt', col_names => [qw(emp_no cat_no forename surname initial ni_no ttl gender mrtl_sts dob hmeadd1 hmeadd2 hmeadd3 hometown county homepost emp_cntrbtn emplyr_ctr anl_sal doj_schm dojcmpny exchanged schm_jnr)]}; $dbh->{'csv_tables'}->{'cimp_monthly'} = { 'file' => 'Aviva_cimp_monthly_extract.txt'}; $dbh->{'csv_tables'}->{'rac_monthly'} = { 'file' => 'rac_cimp_monthly_extract.txt'}; $dbh->{'csv_tables'}->{'cimp_ops'} = { 'file' => 'Aviva_pension_opt_outs_extract.txt'}; $dbh->{'csv_tables'}->{'cimp_leavers'} = { 'file' => 'Aviva_cimp_leavers_extract.txt'}; $dbh->{'csv_tables'}->{'rac_leavers'} = { 'file' => 'rac_cimp_leavers_extract.txt'}; $dbh->{'csv_tables'}->{'cimp_money'} = { 'file' => 'Aviva_cimp_money_positive.txt'}; $dbh->{'csv_tables'}->{'rac_money'} = { 'file' => 'rac_cimp_money_positive.txt'}; $dbh->{'csv_tables'}->{'workday'} = { 'file' => 'workday_mstr_final.csv'}; my $query = "SELECT Employee_Number,Forename,Surname,Home_Address_Line_1,Home_Address_Line_2,Home_Address_Line_3,Home_Town_City,Home_County,Home_Post_Code FROM workday"; my $sth = $dbh->prepare ($query); $sth->execute(); $sth->bind_columns (\my ($wrk_emp_no,$wrk_forename,$wrk_surname,$wrk_hme_add1,$wrk_hme_add2,$wrk_hme_add3,$wrk_hme_city,$wrk_hme_cnty,$wrk_postcode)); while (my $row = $sth->fetch) { $dbh->do("UPDATE new_entrant SET forename='$wrk_forename',surname='$wrk_surname' FROM new_entrant WHERE emp_no='$wrk_emp_no'") or die $DBI::errstr; } $sth->finish(); $dbh->disconnect( );