#! /usr/bin/perl use strict; use warnings; use DBI; my $user = 'username'; my $pass = 'userpasswort'; my $db = 'datenbankname'; my $host = 'localhost'; my $driver = “DBI:mysql:$db:$host“; my $dbh = DBI->connect($driver,$user,$pass) or die $DBI::errstr; my $quelle = my $ziel = 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"; }