Leser: 1
|< 1 2 >| | 16 Einträge, 2 Seiten |
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 = '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"; }
1
2
3
4
5
my $erstellen = <<"BEGRENZER_DER_NICHT_IM_SQLCODE_VORKOMMT";
CREATE TABLE $ziel ....
DEIN SQL CODE
DEIN SQL CODE
BEGRENZER_DER_NICHT_IM_SQLCODE_VORKOMMT
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"; }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
root@ks359263:/daten# clear
root@ks359263:/daten# perl cmag_mysql.pl
"my" variable $sth masks earlier declaration in same scope at cmag_mysql.pl line 56.
"my" variable $quelldaten masks earlier declaration in same scope at cmag_mysql.pl line 68.
"my" variable $sth masks earlier declaration in same scope at cmag_mysql.pl line 70.
Global symbol "$guelldaten" requires explicit package name at cmag_mysql.pl line 56.
Global symbol "$gesamt" requires explicit package name at cmag_mysql.pl line 58.
Global symbol "$guelldaten" requires explicit package name at cmag_mysql.pl line 70.
Global symbol "$zeiger" requires explicit package name at cmag_mysql.pl line 72.
Global symbol "$felder" requires explicit package name at cmag_mysql.pl line 83.
Global symbol "$zeiger" requires explicit package name at cmag_mysql.pl line 83.
Global symbol "@ergebnis" requires explicit package name at cmag_mysql.pl line 85.
Global symbol "$felder" requires explicit package name at cmag_mysql.pl line 85.
Global symbol "@ergebnis" requires explicit package name at cmag_mysql.pl line 87.
Global symbol "@ergebnis" requires explicit package name at cmag_mysql.pl line 87.
Global symbol "@ergebnis" requires explicit package name at cmag_mysql.pl line 87.
Global symbol "$gesamt" requires explicit package name at cmag_mysql.pl line 116.
Bareword "perl" not allowed while "strict subs" in use at cmag_mysql.pl line 7.
Bareword "perl" not allowed while "strict subs" in use at cmag_mysql.pl line 8.
Bareword "klicktel" not allowed while "strict subs" in use at cmag_mysql.pl line 9.
Bareword "localhost" not allowed while "strict subs" in use at cmag_mysql.pl line 10.
Execution of cmag_mysql.pl aborted due to compilation errors.
root@ks359263:/daten#
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
# Verbindung zur Datenbank herstellen
my $dbh = DBI->connect(blabla,nimm,mal,dein,passwort,raus);
# Methoden aufrufen, die irgend etwas mit der Datenbank machen.
do_something($dbh);
# jetzt noch was mit Rückgabewert:
my $rv = do_something_else($dbh);
print $rv;
=head1 METHODS
Deine Methoden hier.
=head2 do_someting
Beschreibung, was du machst....
=cut
sub do_someting {
my $dbh = shift;
my $sth = $dbp->prepare(dein statement) or die "fehler...";
my $rv = $sth->...... usw.
} # /do_something
=head2 do_someting_else
Beschreibung, was du machst....
=cut
sub do_someting_else {
my $dbh = shift;
my $sth = $dbp->prepare(dein statement) or die "fehler...";
my $rv = $sth->...... usw.
return "ergebnis";
} # /do_something_else
1
2
3
4
5
6
7
8
9
#!/perl/bin/perl
my %CONFIG = ();
$CONFIG{dsn} = 'dbi:Oracle:localhost';
$CONFIG{username} = 'testbenutzername';
$CONFIG{password} = 'testpasswort';
\%CONFIG;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/perl
use strict;
use warnings;
use DBI;
use Config::Auto;
my $config = Config::Auto::parse('main.config');
my $dsn = $config->{dsn};
my $username = $config->{username};
my $password = $config->{password};
my $options = { AutoCommit => 1, };
my $dbh = DBI->connect($dsn, $username, $password, $options) or die "cannot connect to db: " . DBI::errstr();
# mach was mit $dbh
$dbh->disconnect();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
root@ks359263:/daten# clear
root@ks359263:/daten# perl cmag_mysql.pl
syntax error at cmag_mysql.pl line 15, near "$sth
my "
Global symbol "$erstellen" requires explicit package name at cmag_mysql.pl line 16.
Global symbol "$erstellen" requires explicit package name at cmag_mysql.pl line 30.
Global symbol "$erstellen" requires explicit package name at cmag_mysql.pl line 48.
Global symbol "$guelldaten" requires explicit package name at cmag_mysql.pl line 61.
Global symbol "$gesamt" requires explicit package name at cmag_mysql.pl line 63.
Global symbol "$guelldaten" requires explicit package name at cmag_mysql.pl line 75.
Global symbol "$zeiger" requires explicit package name at cmag_mysql.pl line 77.
Global symbol "$felder" requires explicit package name at cmag_mysql.pl line 88.
Global symbol "$zeiger" requires explicit package name at cmag_mysql.pl line 88.
Global symbol "@ergebnis" requires explicit package name at cmag_mysql.pl line 90.
Global symbol "$felder" requires explicit package name at cmag_mysql.pl line 90.
Global symbol "@ergebnis" requires explicit package name at cmag_mysql.pl line 92.
Global symbol "@ergebnis" requires explicit package name at cmag_mysql.pl line 92.
Global symbol "@ergebnis" requires explicit package name at cmag_mysql.pl line 92.
Global symbol "$gesamt" requires explicit package name at cmag_mysql.pl line 121.
Execution of cmag_mysql.pl aborted due to compilation errors.
root@ks359263:/daten#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Variante 1: Die Variable wird nur in 1 Methode benötigt:
# Aufruf: my_method($dbh);
sub my_method {
my $dbh = shift; # das kennen wir schon, das nimmt $dbh als 1. Argument entgegeben
my $in_dieser_methode_gueltige_variable = "blubb";
} # /my_method
# Variante 2: Die Variable wird mehrfach verwendet, $dbh ist so ein Fall.
# Aufruf: my_meth2($dbh, $meine_bereits_deklarierte_variable);
sub my_meth2 {
my $dbh = shift;
my $argument = shift; # neu: ein zweites Argument wird eingelesen!
# das ist etwas, was du dort deklariert hast, wo du die Methode aufrufst.
} # /my_meth2
Kingpin90+2008-08-10 21:41:20--
Linuxer+2008-08-10 21:59:43--Sehr böse als root zu entwickeln und dann die Sachen auch als root laufen zu lassen.
Kingpin90+2008-08-10 22:09:47--hattest recht. hatten 4 semikolons gefehlt...
|< 1 2 >| | 16 Einträge, 2 Seiten |