Thread Perl , SQL und Datenbank (13 answers)
Opened by joelsok at 2010-07-15 16:22

topeg
 2010-07-16 08:51
#139835 #139835
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Lese alle Zeilen als Hashrefenz aus der Abfrage in DB A
while(my $row=$sth_a->fetchrow_hashref)
{
  # ermittle alle Schlüssel des Hashes (das sind die Spaltennamen)
  my @names=keys(%$row);
  # füge alle Spaltennamen Komma separiert zusammen
  my $keys=join(', ',@names);
  # erzeuge genauso viele Komma separierte "?" wie es Spaltennamen gibt
  my $values=join(', ',map{'?'}@names);
  # Erzeuge ein Statement das Alle Werte Aus der Abfrage in BD A in die Tabelle der DB B einfügt.
  # Beispiel: "INSERT INTO Adresse (ort, strasse, ausnummer) VALUES (?, ?, ?)"
  # und führe das Statement mit den Werten aus dem Hash aus.
  $dbh_b->do("INSERT INTO Adresse ($keys) VALUES ($values)",undef,@$row{@names});
}


Das wird natürliche komplizierter wenn die Tabelle in der DB B schon Werte enthält die ein "UPDATE" aus der DB A bedürfen.

View full thread Perl , SQL und Datenbank