# cat test.csv vm,farm,dmz name1,farm1,z1 name2,farm2,z2 name3,farm3,z3 #### #!/usr/bin/perl -w use strict; use DBI; open (my $FH, '<', "test.csv") or die "Cannot open test.csv: $! \n"; my $dbh = DBI->connect ("dbi:Oracle:host=;sid=", '', ',password.', { RaiseError => 1, AutoCommit => 1, TraceLevel => 4}) or die "Canot create Databse Handle: $DBI::errstr() \n"; my $table = "CLUSTER_MAPPING"; my @array = <$FH> ; close $FH; shift @array; ### this is to remove the column headers my $sth = $dbh->prepare ("INSERT INTO $table (name, farm, dmz) VALUES (?,?,?)"); while (<@array>) { my @row = split /,/; my $col1_value = $row[0]; my $var1 = $row[1]; $var1 =~ s/"//g; $var1 =~ s/^ //g; my $col2_value = $var1; my $col3_value = $row[2]; $sth->execute ($col1_value, $col2_value, $col3_value); } $sth->finish(); $dbh->disconnect(); #### DBI::db=HASH(0x228e560) trace level set to 0x0/2 (DBI @ 0x0/0) in DBI 1.622-ithread (pid 15876) -> STORE for DBD::Oracle::db (DBI::db=HASH(0x228e560)~INNER 'Username' '') thr#21f5010 <- STORE= 1 at DBI.pm line 713 -> connected in DBD::_::db for DBD::Oracle::db (DBI::db=HASH(0x228e5f0)~0x228e560 'dbi:Oracle:host=;sid=' '' **** HASH(0x2401778)) thr#21f5010 <- connected= undef at DBI.pm line 720 -> STORE for DBD::Oracle::db (DBI::db=HASH(0x228e560)~INNER 'dbi_connect_closure' CODE(0x228de28)) thr#21f5010 <- STORE= 1 at DBI.pm line 729 -> prepare for DBD::Oracle::db (DBI::db=HASH(0x228e5f0)~0x228e560 'INSERT INTO CLUSTER_MAPPING (name, farm, dmz) VALUES (?,?,?)') thr#21f5010 dbd_preparse scanned 3 distinct placeholders <- prepare= DBI::st=HASH(0x228e938) at upload.pl line 17 -> execute for DBD::Oracle::st (DBI::st=HASH(0x228e938)~0x228e980 'name1' 'farm1' 'z1') thr#21f5010 dbd_bind_ph(1): bind :p1 <== 'name1' (type 0 (DEFAULT (varchar))) dbd_rebind_ph_char() (1): bind :p1 <== 'name1' (size 28/32/0, ptype 5(VARCHAR), otype 1 ) dbd_bind_ph(1): bind :p2 <== 'farm1' (type 0 (DEFAULT (varchar))) dbd_rebind_ph_char() (1): bind :p2 <== 'farm1' (size 25/32/0, ptype 5(VARCHAR), otype 1 ) dbd_bind_ph(1): bind :p3 <== 'z1' (type 0 (DEFAULT (varchar))) dbd_rebind_ph_char() (1): bind :p3 <== 'z1' (size 24/32/0, ptype 5(VARCHAR), otype 1 ) dbd_st_execute INSERT (out0, lob0)... Statement Execute Mode is 32 (COMMIT_ON_SUCCESS)