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?


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"

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.


-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.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.