Dois-je retaper des informations chaque fois que je fais une erreur dans SQLPlus

11

Si je fais une erreur dans SQLPlus lors de la saisie d'une commande «insérer dans», existe-t-il un moyen de faire remonter ces informations afin de les modifier?

Bambi Bowman
la source
Vous devez taper dans la ligne de commande: Rollback;
@ user16063 --- et qu'est-ce que cela fera? Pouvez-vous élaborer un peu?
jcolebrand
@ user16063 Je suis sûr que c'est un malentendu, Bambi veut éditer le texte de la commande précédente et non annuler une transaction.
Jack dit d'essayer topanswers.xyz
Consultez également sqlcl(il s'agit toutefois d'une application Java, mais d'une invite très sophistiquée et de la prise en charge du terminal pour une CLI)
vérifie le

Réponses:

15

Plusieurs façons.

Vous pouvez définir la EDITORvariable d'environnement avant d'exécuter SQL * Plus (en supposant Unix), pour permettre l'utilisation d'un éditeur de texte externe ( vi, à titre d'exemple):

export EDITOR=vi

Tapez ensuite edSQL * Plus pour modifier la requête précédente dans l' viéditeur. Bien sûr, vous pouvez préférer nano, pico, emacs, vimetc , etc.

Si vous ne souhaitez pas définir de variable d'environnement, vous pouvez ajouter define _editor=vià votre $ORACLE_HOME/sqlplus/admin/glogin.sqlfichier à la place.

Ma façon préférée de réaliser le paradis de l'édition SQL * Plus (sous Unix) est d'utiliser rlwrap. Cela ajoute la readlineprise en charge de SQL * Plus et vous permet de modifier facilement dans SQL * Plus lui-même.

Installez à rlwrappartir de votre référentiel de packages de distributions (ou téléchargez et compilez à partir du site Web ici ), puis ajoutez ce qui suit à votre script de démarrage shells ( .bashrc/ .bash_profileou similaire):

alias sqlplus="rlwrap -i sqlplus"
Philᵀᴹ
la source
2

Sauf si quelque chose a changé, tapez simplement "modifier" et appuyez sur Entrée et il s'ouvrira dans le Bloc-notes (en supposant que Windows ici) et vous pouvez modifier la requête là-dedans.

mrdenny
la source
-2

Pour toutes les applications en ligne de commande, emacs peut être utilisé comme interface. Vous pouvez ouvrir le mode shell et exécuter l'outil de ligne de commande. Emacs enverra la commande entrée à l'outil de ligne de commande et lira et affichera la sortie. Comme vous saisissez votre entrée dans emacs, vous pouvez manipuler votre entrée à l'aide des commandes emacs. L'utilisation de ce mode emacs peut être utilisé avec les outils Oracle suivants comme *

  • rman
  • lsnrctl
  • adrci
  • dgmgrl

Il existe un mode sql-oracle spécial qui prend spécialement en charge sqlplus . J'y ai travaillé il y a longtemps. Aujourd'hui, je ne l'ai pas trouvé dans la documentation. J'ai cherché sur le Web et je n'ai trouvé que le lien suivant . Vous pouvez peut-être en trouver plus lors de la recherche dans les documents emacs. Il existe d'autres modes sql pour emacs . Cette page contient également une référence au lien trouvé par @Jack Douglas.

Beaucoup de gens n'aiment pas emacs car ils pensent que c'est un outil complexe.

miracle173
la source
Je me demande si les downvotes sont des vifans;) J'ai trouvé cela (apparemment "inspiré par sqlplus-mode.el") sur Google - est-ce le genre de chose dont vous parliez?
Jack dit d'essayer topanswers.xyz
Je pense que c'est quelque chose de similaire au mode sql-oracle .
miracle173