Muss ich jedes Mal, wenn ich einen Fehler in SQLPlus mache, Informationen erneut eingeben?

11

Wenn ich bei der Eingabe eines Befehls zum Einfügen in SQLPlus einen Fehler mache, kann ich diese Informationen dann wieder aufrufen, um sie zu bearbeiten?

Bambi Bowman
quelle
Sie müssen In Befehlszeile eingeben: Rollback;
@ user16063 --- und was macht das? Können Sie das überhaupt näher erläutern?
Jcolebrand
@ user16063 Ich bin mir ziemlich sicher, dass dies ein Missverständnis ist. Bambi möchte den vorherigen Befehlstext bearbeiten und keine Transaktion zurücksetzen.
Jack sagt, versuchen Sie topanswers.xyz
sqlcl
Schauen

Antworten:

15

Verschiedene Wege.

Sie können die EDITORUmgebungsvariable festlegen , bevor Sie SQL * Plus (unter der Annahme von Unix) ausführen, um die Verwendung eines externen Texteditors zu ermöglichen (als viBeispiel):

export EDITOR=vi

Geben Sie dann edSQL * Plus ein, um die vorherige Abfrage im viEditor zu bearbeiten . Natürlich können Sie es vorziehen nano, pico, emacs, vimetc etc.

Wenn Sie keine Umgebungsvariable festlegen möchten, können define _editor=viSie $ORACLE_HOME/sqlplus/admin/glogin.sqlstattdessen zu Ihrer Datei hinzufügen .

Meine Lieblingsmethode, um SQL * Plus Edit Heaven (unter Unix) zu erreichen, ist die Verwendung von rlwrap. Dies fügt readlineSQL * Plus Unterstützung hinzu und ermöglicht Ihnen das einfache Bearbeiten in SQL * Plus selbst.

Installieren Sie es rlwrapaus Ihrem Distributionspaket-Repository (oder laden Sie es hier von der Website herunter und kompilieren Sie es ), und fügen Sie dann Folgendes zu Ihrem Shells-Startskript ( .bashrc/ .bash_profileoder ähnlichem) hinzu:

alias sqlplus="rlwrap -i sqlplus"
Philᵀᴹ
quelle
2

Wenn sich nichts geändert hat, geben Sie einfach "Bearbeiten" ein und drücken Sie die Eingabetaste. Es wird im Editor geöffnet (vorausgesetzt, Windows hier) und Sie können die Abfrage dort ändern.

mrdenny
quelle
-2

Für alle Befehlszeilenanwendungen können Emacs als Schnittstelle verwendet werden. Sie können den Shell-Modus öffnen und das Befehlszeilentool ausführen. Emacs sendet den eingegebenen Befehl an das Befehlszeilentool und liest und zeigt die Ausgabe an. Da Sie Ihre Eingabe in Emacs eingeben, können Sie Ihre Eingabe mit den Befehlen emacs bearbeiten. In diesem Modus können Emacs mit den folgenden Oracle-Tools wie * verwendet werden

  • rman
  • lsnrctl
  • adrci
  • dgmgrl

Es gibt einen speziellen SQL-Oracle- Modus, der insbesondere SQLplus unterstützt . Ich habe vor langer Zeit damit gearbeitet. Heute habe ich es nicht in der Dokumentation gefunden. Ich habe im Internet gesucht und nur den folgenden Link gefunden . Vielleicht finden Sie mehr, wenn Sie die Emacs-Dokumente durchsuchen. Es gibt andere SQL-Modi für Emacs . Diese Seite enthält auch einen Verweis auf den Link von @Jack Douglas.

Viele Leute mögen Emacs nicht, weil sie denken, dass es ein komplexes Werkzeug ist.

Wunder173
quelle
Ich frage mich, ob die Downvotes von viFans stammen;) Ich habe dies (anscheinend "inspiriert von sqlplus-mode.el") bei Google gefunden - ist es das, worüber Sie gesprochen haben?
Jack sagt, versuchen Sie topanswers.xyz
Ich denke, dass dies etwas ähnlich dem SQL-Oracle- Modus ist.
Wunder173