Thread Fehler in meinem ersten Perl Script
(15 answers)
Opened by Kingpin90 at 2008-08-10 21:49
Hallo,
danke für deine schnelle Antwort. Mein Script sieht inzischen so aus: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 #! /usr/bin/perl use strict; use warnings; use DBI; my $user = perl; my $pass = perl; my $db = klicktel; my $host = localhost; my $driver = "DBI:mysql:$db:$host"; my $dbh = DBI->connect($driver,$user,$pass) or die $DBI::errstr; my $quelle = "perl"; my $ziel = "perl"; my $aktuell = 1; ######################################### #### Zieltabelle erstellen #### ######################################### print "Erstelle Zieltabelle..."; my $erstellen = "CREATE TABLE $ziel ( `ANREDE` varchar(10) default NULL, `VORNAME` varchar(255) default NULL, `NAME` varchar(255) default NULL, `ZUSATZ` varchar(255) default NULL, `STRASSE` varchar(50) default NULL, `HAUSNR` varchar(10) default NULL, `STRASSE HAUSNR` varchar(10) default NULL, `ORTSTEIL` varchar(50) default NULL, `D` varchar(1) default NULL, `PLZ` varchar(5) default NULL, `ORT` varchar(50) default NULL, `TELZUSATZ` varchar(10) default NULL, `VORWAHL` varchar(10) default NULL, `TELEFON` varchar(30) default NULL, `VORWAHL TELEFON` varchar(30) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8"; my $sth = $dbh->prepare($erstellen) or die $DBI::errstr; $sth->execute() or die $DBI::errstr; print "OK \n"; ######################################### #### Anzahl der Quelldaten #### ######################################### print "Stelle Anzahl der Quelldaten fest..."; my $quelldaten = 'SELECT COUNT * FROM $quelle'; my $sth = $dbh->prepare($guelldaten) or die $DBI::errstr; $sth->execute() or die $DBI::errstr; $gesamt=$sth->fetchrow_array; print "OK \n"; ######################################### #### Quelldaten laden #### ######################################### print "Lade Quelldaten aus Tabelle..."; my $quelldaten = "SELECT * FROM $quelle"; my $sth = $dbh->prepare($guelldaten) or die $DBI::errstr; $sth->execute() or die $DBI::errstr; $zeiger = $dbh->selectall_arrayref($quelldaten); print "OK \n"; ######################################### #### Beginn der Datenverarbeitung #### ######################################### print "Beginne mit der Verarbeitung der Daten..."; print "OK \n"; foreach $felder(@$zeiger) { @ergebnis=@$felder; my $abfrage = "INSERT INTO $ziel SELECT $quelle.ANREDE, $quelle.VORNAME, $quelle.NAME, $quelle.ZUSATZ, $quelle.STRASSE, $quelle.HAUSNR, $quelle.`STRASSE HAUSNR`, $quelle.ORTSTEIL, $quelle.D, $quelle.PLZ, $quelle.ORT, $quelle.TELZUSATZ, $quelle.VORWAHL, $quelle.TELEFON, $quelle.`VORWAHL TELEFON`, FROM $quelle WHERE $quelle.PLZ = $ergebnis[1] AND $quelle.STRASSE = $ergebnis[2] AND $quelle.HAUSNR = $ergebnis[3]"; my $sth = $dbh->prepare($abfrage) or die $DBI::errstr; $sth->execute() or die $DBI::errstr; my $aktuell = $aktuell +1; print "Bearbeite Datensatz $aktuell von $gesamt \n"; } Die Fehlermeldungen sind erheblich weniger geworden. Nun tauchen immer noch folgende Meldungen auf: Code: (dl
)
1 root@ks359263:/daten# clear |