Oracle-Abfrage von Linux
am 22.02.2006 16:02:21 von et
Huhu,
ich habe ein Problem bei einer Datenbankabfrage in Perl von Linux aus.
Vorausschicken möchte ich, dass recht gut Perl programmieren kann
(lasst mir meinen Glauben, bitte!) und auch über einige SQL-Erfahrung
verfüge, jedoch habe ich keinen blassen Schimmer von irgendwelchen
Einstellungen, die im Betriebssystem, irgendwelchen Systemvariablen
oder sonstwo vorgenommen werden müssen. Mein Perl-Skript, mit dem ich
die Tests durchführe, ist ein modifiziertes, sehr einfaches Beispiel
aus dem Perl-Kochbuch und es funktioniert unter Windows (ActivePerl)
problemlos.
Nun muss/soll/will ich es unter Linux zum Laufen bekommen und dort
bekomme ich die beliebte Fehlermeldung:
[unixODBC][Driver Manager]Data source name not found, and no default
driver specified (SQL-IM002)(DBD: db_login/SQLConnect err=3D-1)
Der Linux-Client ist seit gestern installiert und laut unserem
Linux-Admin funktioniert auch der Zugriff auf die Datenbank mit dem
beigefügten Test-Programm von Oracle tadellos. Leider haben unsere
Linux-Administratoren keine Ahnung von Datenbanken und unsere
Datenbank-Admins keine Ahnung von Linux (*grins).
Ihr seid also meine letzte Hoffnung *schnief
Gibt es irgendwelche von den o.g. Einstellungen, die unter Linux
gesetzt sein müssen und gerne vergessen werden?
Ich hänge noch mal eben die fragliche Zeile dran, aber ich glaube, ihr
kennt sie sowieso schon, oder? Die Alternativvarianten habe ich auch
schon probiert.
my $dbh =3D DBI->connect( 'dbi:ODBC:$db' , $user , $password ) ;
Und wie gesagt: Unter Windows tut es ja auch.
Danke im Voraus,
ET
Re: Oracle-Abfrage von Linux
am 22.02.2006 17:18:59 von Christian Winter
ET schrieb:
[...]
> Mein Perl-Skript, mit dem ich
> die Tests durchführe, ist ein modifiziertes, sehr einfaches Beispiel
> aus dem Perl-Kochbuch und es funktioniert unter Windows (ActivePerl)
> problemlos.
> Nun muss/soll/will ich es unter Linux zum Laufen bekommen und dort
> bekomme ich die beliebte Fehlermeldung:
>
> [unixODBC][Driver Manager]Data source name not found, and no default
> driver specified (SQL-IM002)(DBD: db_login/SQLConnect err=-1)
>
> Der Linux-Client ist seit gestern installiert und laut unserem
> Linux-Admin funktioniert auch der Zugriff auf die Datenbank mit dem
> beigefügten Test-Programm von Oracle tadellos. Leider haben unsere
> Linux-Administratoren keine Ahnung von Datenbanken und unsere
> Datenbank-Admins keine Ahnung von Linux (*grins).
>
[...]
>
> my $dbh = DBI->connect( 'dbi:ODBC:$db' , $user , $password ) ;
Du willst hier über ODBC verbinden, das ist aber eine generische
Datenbank-Schnittstelle, die überwiegend in der Windows-Welt zuhause
ist. Hast Du unixODBC konfiguriert und einen Oracle-Treiber dafür
installiert und als Default ausgewählt?
Wenn nein ist es warscheinlich einfacher, wenn Du auf dem Rechner
DBD::Oracle installierst und das verwendest.
my $dbh = DBI->connect( 'dbi:Oracle:$db' , $user , $password );
Viele Grüße
-Christian
Re: Oracle-Abfrage von Linux
am 22.02.2006 22:22:12 von Guido Ostkamp
ET wrote:
> [unixODBC][Driver Manager]Data source name not found, and no default
> driver specified (SQL-IM002)(DBD: db_login/SQLConnect err=-1)
Mach Dich unter schlau, wie unixOBDC
konfiguriert wird, z.B. mit den dortigen Perl::DBD::ODBC Tutorials,
oder benutze gleich DBD::Oracle, wie Dir schon empfohlen wurde.
Gruß,
Guido
Re: Oracle-Abfrage von Linux
am 23.02.2006 17:17:55 von et
Huhu,
erstmal vielen Dank für die Antworten. Bevor ich unsere Admins drauf
ansetze, müsste ich noch wissen, ob DBD::Oracle auch unter Windows
läuft. Da die Funktionen, die ich schreiben darf/soll/muss, sowohl von
Windows wie auch Linux verfügbar sein werden (und ich nicht zwei
Versionen vorhalten will), sollte es sich um eine auf beiden Systemen
lauffähige Version handeln.
Nochmals Danke im Voraus,
ET
PS.: Ich kann gerade nicht probieren, ob ich DBD::Oracle unter
ActivePerl installieren kann (oder ob es schon da ist), da sowohl der
ppm3 wie ActivePerl selber mit meinem (nagelneuen) Profil nicht ohne
weiteres zusammen arbeiten wollen *grummel