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
#!/usr/bin/perl
use strict;
use DBI;
# die Umgebungsvariable "ORACLE_HOME" muss gesetzt werden
$ENV{ORACLE_HOME} = '/path/to/oracle/10.2.0';
# DB-Verbindung oeffnen und initialisieren
my $dbh = DBI->connect("dbi:Oracle:[db]", '[user]', '[pw]');
$dbh->{RaiseError} = 1;
$dbh->func(1000000, 'dbms_output_enable');
# PL/SQL-Prozedur der DB aufrufen
my $csr = $dbh->prepare(q{
BEGIN
FOR i IN 1 .. 407 LOOP
dbms_output.put('a');
END LOOP;
--
dbms_output.new_line;
END;
});
$csr->execute;
# alle Daten aus dem Puffer von "dbms_output" holen
my @ausgaben = $dbh->func( 'dbms_output_get' );
# diese Daten in eine Datei schreiben
foreach my $ausgabe (@ausgaben) {
print $ausgabe;
print "\n";
}
# DB-Verbindung schliessen
$dbh->disconnect;
1 2 3 4 5 6 7 8 9 10
my $csr = $dbh->prepare(q{ BEGIN FOR i IN 1 .. 407 LOOP dbms_output.put('a'); END LOOP; -- dbms_output.new_line; dbms_output.put_line('Hello World'); END; });
1 2 3 4 5 6 7 8 9 10
my $csr = $dbh->prepare(q{ BEGIN FOR i IN 1 .. 408 LOOP dbms_output.put('a'); END LOOP; -- dbms_output.new_line; dbms_output.put_line('Hello World'); END; });
1 2
my $dbh = DBI->connect("dbi:Oracle:[db]", '[user]', '[pw]'); $dbh->{RaiseError} = 1;
1 2 3 4 5 6 7 8 9
eval{ $dbh = DBI->connect_cached( $dsn, $cfg->{mysql}->{user}, $cfg->{mysql}->{pass}, {RaiseError => 1, PrintError => 0} ); }; if($@){ # Der Layer verweigert die Verbindung }