Дан набор данных с разделителями в следующем формате:
1|Star Wars: Episode IV - A New Hope|1977|Action,Sci-Fi|George Lucas
2|Titanic|1997|Drama,History,Romance|James Cameron
В elisp , как я могу сгенерировать операторы вставки SQL в этом формате?
insert into table
values(1,"Star Wars: Episode IV - A New Hope",1977","Action,Sci-Fi","George Lucas",0);
insert into table
values(2,"Titanic",1997,"Drama,History,Romance","James Cameron",0);
Чтобы упростить проблему, давайте позволим параметру сказать, какой
столбцы текстовые или числовые. (например, 0,1,0,1,1)
Вот как бы я это сделал в Perl.
my @ctypes=qw/0 1 0 1 1/;
while(<>) {
chop;
@F=split('\|', $_);
print "insert into table values(";
foreach my $col (@F) {
my $type=shift(@ctypes);
print ($type == 1 ? '"'.$col.'"' : $col);
print ",";
}
print "0);\n";
}