Letzte Änderung 05.04.2017
English Version

rlwrap_ext


rlwrap-ext – eine Ergänzung für rlwrap

Beschreibung

Wer rlwrap mit sqlplus, rman, oder anderen Oracle-Tools zusammen verwendet, sollte auch alle Features der readline-Bibliothek ausnutzen - rlwrap kann nämlich mehr: Commandline completion, zum Beispiel. Sie geben die Buchstaben sel ein, drücken die Tabulatortaste, und rlwrap ergänzt das Wort zu SELECT.

Klingt nicht spektakulär?
Ist es auch nicht, aber seeeehr hilfreich, weil damit auch die Namensvervollständigung (grauenhaftes Wort, aber wie würden sie name completion übersetzen?) für alles Mögliche aktivieren kann.
Nämlich für:

Damit das funktioniert, braucht man zwei Dinge:

  1. man muss rlwrap eine (oder mehrere) Datei(en) mitgeben, wo all die schönen Schlüsselworte drin stehen
  2. und
  3. man muss rlwrap beibringen, welche Zeichen in SQL innerhalb eines Wortes vorkommen dürfen.
    Da die readline-Bibliothek für die Bash entwickelt wurde, werden die Zeichen $ und # nicht als Teil eines Wortes akzeptiert – das ist im Falle von SQL falsch. Um das zu beheben, habe ich ein kleines Script namens sql+ geschrieben, das in den Packages enthalten ist. Damit lässt sich der Aufruf von rlwrap vereinfachen. Anstatt sqlplus direkt aufzurufen, können sie das Script sql+ aufrufen. Ohne Parameter ruft es sqlplus / as sysdba auf (oder sqlplus / as sysasm bei ASM-connects), andernfalls übergibt es seine Aufrufparameter an sqlplus.

Download

Aus der Praxis sind dabei ein paar Dateien inklusive aufrufendem Script entstanden, die hier zum Download bereitstehen:

Alles, was sie machen müssen (nachdem sie rlwrap erfolgreich installiert haben), ist die heruntergeladene Datei zu entpacken und die Install-Anweisung zu befolgen, die keine großen Anforderungen stellt.

Welche Version?

Im Prinzip spielt es keine Rolle, welche Oracle Version sie mit welcher Version von rlwrap-extensions kombinieren, denn rlwrap ist es herzlich egal, mit welcher Oracle Version es spricht. Es geht hier nur um die (nicht) vorhandenen Schlüsselworte für rlwrap. Im schlimmsten Fall schlägt rlwrap eine View / ein Package / oder sonstwas vor, was es in der momentan verwendeten Oracle Version nocht nicht oder nicht mehr gibt.

Es macht allerdings keinen Sinn, mehrere Versionen von rlwrap-extensions übereinander zu installieren –. Im Zweifelsfall nehmen sie die jüngste Version.

Der Aufruf von asmcmd, adrci und rman mit rlwrap-extensions

Wenn sie rman, adrci oder asmcmd mit rlwrap aufrufen, sollten sie den Schalter -i verwenden oder - im Fall von asmcmd - gleich das mitgepackte Script asm+ verwenden. Damit zwingen sie rlwrap in den case-insensitive Modus bzw nutzen alle Schlüsselworte. Andernfalls findet rlwrap möglicherweise die Schlüsseworte aus der Liste nicht.