dimanche 3 février 2013

Naviguer dans l'historique de SQLplus sous Linux

Si vous utilisez SQL Plus sous DOS vous devez surement apprécier  de pouvoir naviguer dans l'historique des commandes exécutées précédemment  en jouant avec les flèches HAUT et BAS.

Si vous utilisez par contre SQL Plus sous Linux vous serez déçu de voir qu'en tapant sur les flèches HAUT et BAS vous ne pourrez pas faire défiler les commandes précédemment exécutées. Vous aurez en retour des caractères bizarres du genre:
SQL> ^[[A^[[B  

Heureusement sous Linux il existe toujours une solution.
Celle-ci consiste ici à récupérer le package RLWRAP puis à l'installer. Vous pouvez télécharger le package correspondant à votre version de Linux ici.
Voici un exemple d'istallation pour mon Oracle Linux 6:
 [oracle@ahmed-ol6 ~]$ su root
Password: 
[root@ahmed-ol6 oracle]# cd /media/sf_Softs/
[root@ahmed-ol6 sf_Softs]# ls rlwrap*
rlwrap-0.37-1.el6.i686.rpm
[root@ahmed-ol6 sf_Softs]# rpm -ivh rlwrap-0.37-1.el6.i686.rpm
warning: rlwrap-0.37-1.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing...                ########################################### [100%]
   1:rlwrap                 ########################################### [100%]

Maintenant que le package a été installé je me connecte à ma base via SQL Plus en précédent SQLPLUS par RLWRAP:
 [oracle@ahmed-ol6 ~]$ rlwrap sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Sun Feb 3 11:58:21 2013

Copyright (c) 1982, 2009, Oracle. All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options

SQL> sho parameter db_name

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string orcl1

Si j'appuie sur la flèche du haut je vois apparaitre la dernière commande exécutée:
SQL> sho parameter db_name
Pour que RLWRAP soit automatiquement pris en compte lorsqu'on lance SQL Plus il suffit d'ajouter l'alias suivant dans le fichier .bash_profile:
alias sqlplus='rlwrap sqlplus'







1 commentaire: