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:
$ 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, andernfalls übergibt es seine Aufrufparameter an sqlplus.
Aus der Praxis sind dabei ein paar Dateien inklusive aufrufendem Script entstanden, die hier zum Download bereitstehen:
rlwrap-extensions für Oracle Version 11
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.
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 bzw kennt es ein paar Objektnamen nicht, die die aktuelle Version hat.
Es macht allerdings keinen Sinn, mehrere Versionen von rlwrap-extensions übereinander zu installieren – im Zweifelsfall nehmen sie die jüngste Version.
Sie können allerdings die verschiedenen Versionen jede in ein eigenes Verzeichnis installieren und das Script sql+, das normalerweise in /usr/local/bin installiert wird, für jede Version anpassen und ins entsprechende $ORACLE_HOME/bin kopieren. Damit erhält jede Oracle-Version ihre eigene Version der rlwrap-extensions.
Wenn sie rman, asmcmd oder adrcli (nur 11g) mit rlwrap aufrufen, sollten sie den Schalter -i verwenden. Damit zwingen sie rlwrap in den case-insensitive Modus.
Andernfalls findet rlwrap möglicherweise die Schlüsseworte aus der Liste nicht.
rlwrap -i asmcmd
oder
rlwrap -i rman target ...