Ich habe ein kleines Projekt, das ich in Haskell versuchen möchte. Eine Reihe von begrenzten Daten im folgenden Format gegeben:Wie kann ich sql-Inserts aus pipe-separierten Daten erzeugen?
1 | Star Wars: Episode IV - eine neue Hoffnung | 1977 | Aktion, Science-Fiction | George Lucas 2 | Titanic | 1997 | Drama, Geschichte, Romantik | James Cameron
In Haskell, wie kann ich sql einfügen Anweisungen in diesem Format generieren?
Einsatz in Tabellenwerte (1, "Star Wars: Episode IV - Eine neue Hoffnung" 1977" , "Aktion, Sci-Fi", "George Lucas", 0); Einsatz in Tabellenwerte (2, "Titanic", 1997, "Drama, Geschichte, Romantik", "James Cameron", 0);
Um das Problem zu vereinfachen, lassen Sie uns für einen Parameter um zu sagen, welche Spalten Text oder numerisch sind. (ZB 0, 1,0,1,1)
Hier ist eine Lösung in Perl. Nun möchte Ich mag Haskell zu meinem Toolkit hinzuzufügen.
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"; }
Zusammenfassung Antwort, aber ein +1 für "alle Ihre Werte korrekt zu entkommen". http://xkcd.com/327/ –
Sie sollten die Werte überhaupt nicht wirklich entkommen. Stattdessen sollten Sie einen '?' - Platzhalter verwenden und den tatsächlichen Wert separat für die Datenbankbibliothek angeben. – dave4420
Sie haben Recht. Aber die Frage lautete speziell über das Einfügen von Anweisungen. – Daniel