i'm writing a program in perl to populate a database. the code seems to be the way it should, but when i run it, the script does not create a new table. it drops the table but doesn't create it. i get an error message saying table does not exist when it gets to the insert statement.
#!C:\Perl\bin\perl
#use strict;
use DBI;
my $dbh = DBI->connect( 'dbi:Oracle:XE',
'username',
'password',
) || die "Database connection not made:
$DBI::errstr";
my $sql = qq {DROP TABLE CUSTOMER};
$dbh->do ($sql);
my $sql = qq { CREATE TABLE CUSTOMER (
id INTEGER PRIMARY KEY,
fname vARCHAR2(30),
lname VACHAR2(30),
street VARCHAR2(50),
city VARCHAR2(30),
state VARCHAR2(20),
zip VARCHAR2(10),
gender VARCHAR2(10)
)};
$dbh->do ($sql);
my $insert_handle = $dbh->prepare_cached('INSE
RT INTO CUSTOMER (id,
fname,lname, street, city, state, zip, gender) VALUES (?,?,?,?,?,?,?,?) ');
die "Couldn't prepare queries; aborting" unless defined
$insert_handle;
my @tuple;
my $index=1;
open(TEST, "custdata_CSV.csv");
while (<TEST>){
@tuple = split(/,/,$_);
print "$tuple[0]\n$tuple[1]\n$tu
ple[2]\n$t
uple[3]\n$
tuple[4]
\n$tuple[5]\n$tuple[6]\n";
$insert_handle->execute($i
ndex,$tupl
e[0],$tupl
e[1],$tupl
e[2],$tupl
e
[3],$tuple[4],$tuple[5],$t
uple[6]);
$index++;
}
close(TEST);
$dbh->disconnect();
Start Free Trial