unixODBC spielt nicht mit Oracle

unixODBC macht mich echt fertig.

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

Dauernd flog die Verbindung zum DBMS mit der Fehlermeldung: “[unixODBC][Driver Manager]Driver does not support this function” ab.

Ich schob den Fehler dem JDBC-Teil der Java-Anwendung zu (v.a. wg. der Meldung “Das Laden des JDBC-Treibers “{0}” ist fehlgeschlagen.” und dem Umstand, dass der Fehler in einer testweise angelegten OOO-Base-Datenbank nicht auftrat), und richtete für das Programm dann die Verbindung über den “Oracle OCI Driver” ein. Das funktionierte auch einwandfrei.

Als ich jedoch gerade anfing, eine QT-Anwendung zu erstellen, die auch über ODBC an meine Oracle-Instanz andocken sollte, rieselte es wieder die “Driver does not support..”-Fehler.

Der Connect funktionierte, die Abfragen blieben allesamt hängen.

Und weil in der OSS-Version von QT keinen OCI-Treiber gibt, musste ich mich nun zwangsläufig mit dem Fehler auseinandersetzen.

Ein Trace der unixODBC-Verbindung ergab folgende Log-Einträge:

[ODBC][25990][SQLSetStmtAttr.c][243]
Entry:
Statement = 0x811f6d0
Attribute = SQL_ATTR_CURSOR_TYPE
Value = 0×3
StrLen = -5
[ODBC][25990][SQLSetStmtAttr.c][356]Error: IM001
[ODBC][25990][SQLGetDiagRec.c][710]
Entry:
Statement = 0x811f6d0
Rec Number = 1
SQLState = 0xbf916856
Native = 0xbf916860
Message Text = 0xbf916867
Buffer Length = 512
Text Len Ptr = 0xbf916864
[ODBC][25990][SQLGetDiagRec.c][747]
Exit:[SQL_SUCCESS]
SQLState = IM001
Native = 0xbf916860 -> 0
Message Text = [[unixODBC][Driver Manager]Driver does not support this function]

Endlich hatte ich Futter fuer meinen Freund Scroogle. Gleich im ersten Link des Suchergebnisses fand ich eine vermeintliche Lösung: die “aktuelle” Version 2.2.12 von unixODBC – immerhin auch schon fast zwei Jahre veröffentlicht – sollte meine Verbindungsprobleme lösen.

Ein Debian-Paket dafür war nirgendwo in Sicht, also musste ich wohl selber den Compiler anschmeißen.

Blöd dabei wieder:

Vom noch installierten unixodbc ist das immer noch für die Eclipse-Umgebungen für Aptana und QT benötigte Java-Runtime-Environment abhängig. Ich entschied mich vorerst gegen die Deinstallation und für eine Parallelinstallation der Version 2.2.12 nach /opt.

Nach dem Übersetzen und der Installation der Software trug ich, schnell und schmutzig /opt/unixodbc/lib als erste Zeile in die ld.so.conf ein und erneuerte den Cache.

Und siehe da: meine QT-Anbindung schmeißt keine Fehler mehr. :)

Dann werde ich das JRE wohl auch händisch installieren und die Ubuntu-Pakete von unixodbc und JRE vom System verbannen.

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

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>