URL: https://it.desy.de/e5/e76922/e294351/e295218/e295223/index_ger.html
Breadcrumb Navigation
PERL -- DBI unter Windows
ActivePerl (5.8.x)
DBI:Oracle
Oracle stellt die Client-Bibliotheken nicht länger frei zur Verfügung, aus diesem Grund kann DBD Oracle als PPM/PPM3 Modul nicht länger von ActivePerl zur Verfügung gestellt werden.
Das DBD-Oracle Paket für ActivePerl 5.6 ist das letzte kompilierte Paket, welches ohne Oracle-Lizenzen genutzt werden konnte.
Falls die Bibliotheken mit 5.8.x oder höher genutzt werden sollen, so können über www.cpan.org die entsprechenden Module runtergeladen und installiert werden.
Anleitungen hierzu finden Sie unter: http://aspn.activestate.com/ASPN/Reference/Products/ActivePerl/lib/CPAN.html.
Unter Windows gibt es einen einfachen Workaround, um dieses Problem zu umgehen: DBD-ODBC
DBI:ODBC
Zunächst ist unter Windows eine ODBC-Resource (User DSN) zur Verfügung zu stellen, die gegen die Oracle Datenbank läuft.
Diese ist unter System - Verwaltung einzurichten. Existiert bereits eine User DSN, so kann diese natürlich auch verwendet werden.
Im Perl Quellcode sieht die Verbindung wie folgt aus:
...
# verwendete Bibliotheken
use DBI;
# getOracleLogin baut die Datenbankverbindung auf
sub getOracleLogin {
local ($oracle_sid, $username, $password) = @_;
local ($temp_dbh);
local($tempID, $tempPassword, $tempKey);
print " (*) Attempting Oracle Login ...\n";
unless ( $temp_dbh = DBI->connect("DBI:ODBC:UserDSN","User", 'Passwort', {AutoCommit => 0}) ) {
&programError("Oracle Login Failed as $username", "", "$DBI::errstr", "User", 'Passwort');
exit;
}
print " OK\n\n";
return $temp_dbh;
}
# logoffOracle gibt die Verbindung wieder auf
sub logoffOracle {
($dbh) = @_;
print " (*) Attempting Oracle Logoff ...\n";
unless ($dbh->disconnect) {
1;
}
print " OK\n\n";
}
....
### entsprechende Verwendung der Funktionen....