.

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.

3 Antworten zu 'Oracle-ODBC-Zugriff für Debian und Ubuntu'
  1. Marc:

    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:

    @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. Yet another Linux Blog » Blog Archive » unixODBC spielt nicht mit Oracle:

    [...] ich die ODBC-Verbindung zu meiner Oracle-Datenbank scheinbar erfolgreich eingerichtet hatte, funktionierten die meisten DB-Funktionen mit dem danach installieren SquirreL SQL Client [...]

Eine Antwort eintragen

*benötigt

*benötigt / nicht sichtbar

Kalender
Mai 2008
M D M D F S S
 1234
567891011
12131415161718
19202122232425
262728293031 
Ereignisse
    • Keine Termine.
Kategorien
Archiv
Wichtiges!?

.