Se sieti abituati alla shell di linux, quando vi trovate di fronte al prompt di sqlplus si rimane un po’ delusi dal fatto che non si possono usare tutte quelle scorciatoie da tastiera come eravamo abituati in bash (ad esempio il Ctrl-R per ricerca di comandi nell’history, oppure semplicemente l’editing dei comandi tramite i tasti cursore). Ecco alcuni comandi che possono aiutare nella scrittura di query in sqlplus:

  • l o L – Rivedere l’ultimo comando inserito;
  • r o R – Ripetere l’ultimo comando inserito;
  • c o C – Correggere una stringa nell’ultimo comando inserito;
  • ! – Eseguire un comando di sistema operativo;

Riporto una sessione sqlplus di esempio; rispetto all’esempio consiglio di invocare sempre e solo il comando sqlplus e inserire le credenziali di connessione al db quando vengono richieste al prompt per non ritrovare la password in chiaro tra i processi di sistema. Se invece vogliamo usare il metodo indicato sotto, ricordo che se la password contiene dei caratteri speciali tipo $ o @ quest’ultimi devono essere “Escapati” anteponendo un backslash; ad esempio sqlplus user/p\@s\$word@db oppure inserire la password tra apici singoli, sqlplus user/’p@s$word’@db).

[alex@goku]$ sqlplus user/password@db

SQL*Plus: Release 10.2.0.4.0 - Production on Thu Feb 10 21:37:44 2011

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select sysdate from dual;

SYSDATE
---------
10-FEB-11

SQL> l
1* select sysdate from dual
SQL> c/sysdate/sysdate-2
1* select sysdate-2 from dual
SQL> r
1* select sysdate-2 from dual

SYSDATE-2
---------
08-FEB-11

SQL> !
[alex@goku]$ uname -n
goku
[alex@goku]$ exit
exit
SQL>
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

Se volete attivare il supporto readline in sqlplus installate rlwrap e lanciate il comando rlwrap sqlplus user/password@db (il programma può essere installato come pacchetto precompilato apt-get install rlwrap su debian-like o yum install rlwrap su rpm-like o infine compilato da sorgente).

In questo modo potete usare i tasti cursore per ripetere comandi, spostarvi sulla linea di comando, ecc.. Inoltre i comandi R, L e C citati sopra restano sempre utilizzabili. Da notare che rlwrap può essere usato anche in altri programmi come ad esempio gnuplot.

How to use rlwrap

Flexible Sqlplus Command Line History

rlwrap-ext (an extension for rlwrap)

Sqlplus FAQ

[ad name=”HTML”]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.