dbd::csv with col_names but insert / delete / update fail
am 31.12.2007 09:52:52 von access_you
I have a csv file. I defined the column names inside the perl script
but "sql insert" does not work. If the csv has column names, the
script (without col names defined) works.
sql select works on both csv with or without column names.
***** not working ****
/root/csv/db/b
1,peter
2,wilson
insert.pl
use DBI;
$dbh = DBI->connect("DBI:CSV:f_dir=/root/csv/
db;csv_sep_char=",";csv_quote_char=;csv_eol=\n")
or die "Cannot connect: " . $DBI::errstr;
$dbh->{'csv_tables'}->{'passwd'} = {'col_names' => ["id","passwd"]};
$dbh->do("insert into b (id, passwd) values (10,3333)");
[root@localhost csv]# perl insert.pl
Execution ERROR: No such column 'B.ID' called from insert.pl at 6.
***** working without error*******
id,passwd
1,peter
2,wilson
insert.pl
use DBI;
$dbh = DBI->connect("DBI:CSV:f_dir=/root/csv/
db;csv_sep_char=",";csv_quote_char=;csv_eol=\n")
or die "Cannot connect: " . $DBI::errstr;
$dbh->do("insert into b (id, passwd) values (10,3333)");
Re: dbd::csv with col_names but insert / delete / update fail
am 31.12.2007 18:24:01 von jeff
aclhkaclhk wrote:
> I have a csv file. I defined the column names inside the perl script
> but "sql insert" does not work.
That's because you defined the column names for a table called "passwd"
and then tried to do an insert on a table called "b". You need to
define the column names for the table you are trying to insert into.
--
Jeff
> If the csv has column names, the
> script (without col names defined) works.
>
> sql select works on both csv with or without column names.
>
> ***** not working ****
> /root/csv/db/b
> 1,peter
> 2,wilson
>
> insert.pl
> use DBI;
> $dbh = DBI->connect("DBI:CSV:f_dir=/root/csv/
> db;csv_sep_char=",";csv_quote_char=;csv_eol=\n")
> or die "Cannot connect: " . $DBI::errstr;
> $dbh->{'csv_tables'}->{'passwd'} = {'col_names' => ["id","passwd"]};
> $dbh->do("insert into b (id, passwd) values (10,3333)");
>
> [root@localhost csv]# perl insert.pl
>
> Execution ERROR: No such column 'B.ID' called from insert.pl at 6.
>
> ***** working without error*******
> id,passwd
> 1,peter
> 2,wilson
>
> insert.pl
> use DBI;
> $dbh = DBI->connect("DBI:CSV:f_dir=/root/csv/
> db;csv_sep_char=",";csv_quote_char=;csv_eol=\n")
> or die "Cannot connect: " . $DBI::errstr;
> $dbh->do("insert into b (id, passwd) values (10,3333)");
>
>
>
>