Oracle-ODBC-Zugriff für Debian und Ubuntu

An meinem Lenny-Arbeitsplatz benutze ich sqlplus aus dem “Oracle Database 10g Express Client“, um Abfragen auf unseren Oracle-Datenbanken (9i) durchzuführen.

Bei der Einrichtung hatte ich seinerzeit viel zu basteln, deswegen freute ich mich nicht richtig auf die Aufgabe, auf einem Ubuntu-Client den Zugriff auf die Oracle-DB via UnixODBC einzurichten, um dort ein kleines Auswertungs-Tool programmieren zu können.

Aber es war garnicht so schlimm ;)

Grundlage für die Installation war ein aktuelles Ubuntu 8.04 (Hardy Heron). Nach der Installation des o.g. Express Client von Oracle aus dem auf der dortigen Webseite angebotenen Debian-Paket, tauchte im Anwendungsmenü sofort ein Link zu SQL*Plus auf.

Nach dem Aufruf des Programms war über:
connect user/passwort@server:port/sid
die Verbindung sofort aufgebaut.

oracle_sqlplus.jpg

Herrlich :)

Jetzt zur Zitterpartie ODBC – die sich im Übrigen als nicht wirklich kompliziert herausstellte, wenn man denn fertige Ini-Dateien als Muster hat …

Als Grundlage werden eigentlich nur die Pakete unixodbc und unixodbc-bin benötigt.

Das zugehörige Tool ODBCConfig stellte sich dann jedoch quer, als es um die Anlage von Treiber und DSN ging und stellte wiederholt mit der Meldung:

ODBCConfig: ltdl.c:3104: try_dlopen: Assertion `filename && *filename’ failed.
Aborted

seinen Dienst ein.

Aber zum Glück lassen sich die Konfigurationsdateien auch händisch pflegen.

Dabei sollte die /etc/odbcinst.ini so aussehen:
[Oracle10g]
Description = Oracle 10g ODBC Driver
Driver = /usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/libsqora.so.10.1
Driver64 =
Setup =
Setup64 =
UsageCount = 1
CPTimeout =
CPReuse =

Auf diese Weise ist der Oracle-Treiber schon einmal verfügbar.

Jetzt zur DSN, die sich entweder als System-DSN unter /etc/odbc.ini befindet, oder unter selbigem Namen als User-DSN im eigenen Homeverzeichnis Platz findet:
[TEST]
Application Attributes = T
Attributes = W
BatchAutocommitMode = IfAllSuccessful
BindAsFLOAT = F
CloseCursor = F
DisableDPM = F
DisableMTS = T
Driver = Oracle10g
DSN = TEST
EXECSchemaOpt =
EXECSyntax = T
Failover = T
FailoverDelay = 10
FailoverRetryCount = 10
FetchBufferSize = 64000
ForceWCHAR = F
Lobs = T
Longs = T
MetadataIdDefault = F
QueryTimeout = T
ResultSets = T
ServerName = ora_tst:1529/test
SQLGetData extensions = F
Translation DLL =
Translation Option = 0
DisableRULEHint = T
UserID = testuser
StatementCache=F
CacheBufferSize=20

Und nachdem man “/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib/” in seine ld.so.conf aufgenommen, und den Cache mit ldconfig erneuert hat, steht einer Oracle-Verbindung über ODBC (beispielsweise mit dem DataManagerII) nichts mehr im Wege:

oracle_odbc_datamanager.jpg

Bleibt mir nun “nur” noch die Programmiererei.

Über Stefan

Meine Leidenschaft, sowohl im beruflichen als auch im privaten Bereich, gilt seit mittlerweile über 15 Jahren Linux-Systemen. Einen speziellen Schwerpunkt in diesem Bereich habe ich nicht - nur Debian-basiert sollte es sein.
Dieser Artikel wurde in Aus dem Alltag, Linux veröffentlicht.Permalink als Favorit speichern.

3 Antworten zu Oracle-ODBC-Zugriff für Debian und Ubuntu

  1. Marc schreibt:

    Als DB-Frontend, kann ich auch SquirrelSQL wärmstens empfehlen “http://www.squirrelsql.org/”. Für eine funktionierende Verbindung braucht man lediglich einen JDBC-Treiber – und den gibts fast für jede DB.

  2. Stefan schreibt:

    @Marc:

    Danke für den Hinweis, ich werde mir das Tool auf jeden Fall ansehen, Featureliste und Screenshots sehen auf jeden Fall vielversprechend aus.

  3. Pingback: Yet another Linux Blog » Blog Archive » unixODBC spielt nicht mit Oracle

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>