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....