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 (oder sqlplus / as sysasm bei ASM-connects), andernfalls übergibt es seine Aufrufparameter an sqlplus.
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.
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.
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.