I try to upload a csv file to access database using perl DBI. But keep
failing.

The* number* and *type* of the field in csv file are not fixed. Might be
integer or character.
( I was able to make it if they are fixed)

-------------------------------------------------------start of code
#connect to access database
*    $dbh = DBI->connect("dbi:ODBC:$DSN", {
    PrintError => 0,   RaiseError => 1        *
*    }) or die "Can't connect to the database: $DBI::errstr\\n";*
#Create a table
*     $sql = qq{ CREATE TABLE $table_name (id INTEGER NOT NULL, name
VARCHAR(64))};   **<=* What if I don't know the *type* and* name* and *
number* before I upload?
*     $sth = $dbh ->prepare ($sql );
     $sth -> execute;*
#Go through csv file and insert each row to table
*     open( CSV, "<", $csv_file ) or die $!;*
* *
*     foreach my $line (<CSV>) {
          chomp $line ;
          my (  $field1, $field2) = split( /,/, $line );*
*                $sql = qq{ INSERT INTO $table_name values("$
field1","$field2") };*  <= What if I don't know the *type* and* name* and *
number* before I upload? Also, this code doesn't work because
$field1,$field2 are variable. If  I don't use variable, it works.
*                $sth = $dbh ->prepare ($sql );
                $sth -> execute;*
*     }*
#disconnect databse
* $dbh->disconnect();*
-----------------------------------------------------------end of code
**
Could anyone show me how to modify my code or show me a template that can
upload an unknown format csv file into Access database using Perl DBI?
Thank you!

-Tiffany

Reply via email to