Mit dem Update des Oracle Clients auf 11g (Danke IT!) kam vielleicht für manche – wie für mich auch – die erschreckende Meldung beim Aufruf von SQL*Plus: ERROR: ORA-03134: Verbindungen mit dieser Server-Version werden nicht mehr unterstützt. Was? Wie soll ich denn nun auf die ganzen restlichen 8.1.7er Datenbanken kommen?
Ein genereller Rollback des Clients auf 10g ist leider nicht so einfach möglich, immerhin sind die PC’s standardisiert und 11g ist als Clientplattform beschlossen… Politik. Also müssen sich die Entwickler für den Support selbst helfen. Abhilfe schafft der Oracle Instant Client in der Version 10.2.0.4.0 inkl. SQL*Plus Paket.
Während der 11er Client komplett installiert ist und seine knapp 420MB Daten unter C:\oracle\11.1.0 ablegt, liegt der InstantClient nun unter C:\oracle\instantclient_10_2 und kommt mit immerhin nur noch 95MB aus. (Ja, wir haben Windows Clients!)
Um nun schnell und unkompliziert zwischen den einzelnen Versionen hin- und her zu switchen, genügen zwei kleine Batchdateien:
@echo off rem speichere Pfadumgebung set old_path=%PATH% rem setze neuen Pfad rem In Datei sqlp.cmd set PATH=C:\oracle\11.1.0\bin;%PATH% rem in Datei sqpl10g.cmd rem set PATH=C:\oracle\instantclient_10_2;%PATH% set NLS_LANG=GERMAN_GERMANY.WE8PC850 set SQLPATH=H:\scripts set TNS_ADMIN=C:\oracle\11.1.0\network\admin sqlplus /nolog set PATH=%old_path%
Zur Vereinfachung ist hier nur eine dargestellt, da beide Dateien bis auf eine Zeile identisch sind. Abgelegt werden sie sinnvollerweise im BIN Verzeichnis des 11g Clients. Das Verzeichnis ist im Pfad enthalten, wodurch die Scripte von überall aufrufbar sind.
Die Umgebungsvariable TNS_ADMIN wird für beide Scripts auf das NETWORK\ADMIN Verzeichnis des 11er Clients gesetzt; klar, wir wollen ja nur eine Datei pflegen, unabhängig von der Clientversion. Und damit wir auch in SQL*Plus schön unsere Sonderzeichen sehen, wir mittels NLS_LANG der richtige Zeichensatz gesetzt.
Schlagworte: 10g, 11g, Instant Client, SQL*Plus