Ich hab jetzt nochmal nachgesehen: das Modul heißt DBD::DB2. Ist schon ne zeitlang her, dass ich das getestet habe. Wo es genau gehakt hat, weiß ich nicht mehr. In google fand ich dann mehrere Hinweise von anderen usern, die das gleiche Problem hatten.
Hier mal ein kleines Beispiel. Du braucht allerdings dazu idealerweise einen Mainframe mit DB2-Subsystem.
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
#!/usr/bin/perl
#
use strict;
use dbi;
my $user;
my $pw;
my $dateiNameOut = 'bla.txt';
open (OUT, ">>$dateiNameOut")
|| die "Fehler bei $dateiNameOut: $!";
my $sel1;
my $i;
my $dsnt = 'DBI:DB2:Datenbank-Subsystem';
my $stmf;
my @abfrageergebnis;
my $dbht;
$user = 'user';
$pw = 'pw';
$dbht = DBI->connect($dsnt, $user, $pw, {RaiseError => 0, PrintError => 0})
or DBFehler_out('Connect zur DB funktioniert nicht');
$sel1 = "select * from bla;";
my $stmf = $dbht->prepare($sel1)
or DBFehler_out('Abfrage bla funktioniert nicht');
$stmf->execute()
or DBFehler_out('Fehler bei Abfrage bla');
while(@abfrageergebnis = $stmf->fetchrow_array()){
for ($i=0; $i < 58; $i++){
print $abfrageergebnis[$i].";";
}
print OUT "\n";
}
$stmf->finish();
$dbht->disconnect();
close(OUT);
exit(0);
sub DBFehler_out
{
print "Fehler!";
my $message = $_[0];
if (!$DBI::err){
print "\n Fehler im Statement \n $message : \n kein Ergebnis";
}
else{
print "\n DBFehler_out:\n$message:\nFehler ".$DBI::err."(".$DBI::errstr.")\n";
}
}
Ich bin gespannt, ob du es zum laufen bringst.
Last edited: 2014-11-25 12:44:34 +0100 (CET)