sqlplus con historial
Una de las cosas más molestas de trabajar con el cliente sqlplus de Oracle es la ausencia de historial. Mediante rlwrap podemos completar esta deficiencia.
Resulta muy típico usar los cursores en el sqlplus, dando como resultado caracteres a borrar:
$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Tue May 17 09:50:55 2011 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options SQL> ^[[A^[[A^[[D^[[D^[[D
Si instalamos rlwrap (readline wrapper) podremos disponer de historial en el sqlplus:
# rlwrap Usage: rlwrap [options] command ... Options: -a[password:] --always-readline[=password:] -A --ansi-colour-aware -b <chars> --break-chars=<chars> -c --complete-filenames -C <name|N> --command-name=<name|N> -D <0|1|2> --history-no-dupes=<0|1|2> -f <completion list> --file=<completion list> -g <regexp> --forget-matching=<regexp> -h --help -H <file> --history-filename=<file> -i --case-insensitive -I --pass-sigint-as-sigterm -l <file> --logfile=<file> -n --no-warnings -N --no-children -o --one-shot -O <regexp> --only-cook=<regexp> -p[colour] --prompt-colour[=colour] -P <input> --pre-given=<input> -q <chars> --quote-characters=<chars> -m[newline substitute] --multi-line[=newline substitute] -r --remember -R --renice -v --version -s <N> --histsize=<N> (negative: readonly) -S <prompt> --substitute-prompt=<prompt> -t <name> --set-term-name=<name> -w <N> --wait-before-prompt=<N> (msec, <0 : patient mode) -z <filter command> --filter=<filter command> bug reports, suggestions, updates: http://utopia.knoware.nl/~hlub/uck/rlwrap/
Simplemente deberemos ejecutar rlwrap y el comando al que debe hacer de interfaz, por ejemplo:
$ rlwrap sqlplus / as sysdba
Si no indicamos el fichero de historial, se generará como el nombre del comando en la home del usuario, en este caso:
-rw------- 1 oracle oinstall 298 May 16 19:56 .sqlplus_history
En el caso que nos conectemos con varios usuarios, y queremos guardar el historial independientemente deberemos especificar la opción -H:
$ rlwrap -H ~/.sqlplus_jordi sqlplus jordi/test
Para almacenar estos comandos lo mejor son crear alias:
alias sqlplus="rlwrap sqlplus" alias sqlplus_jordi="rlwrap sqlplus -H ~/.sqlplus_jordi jordi/test"
Siendo mucho más cómodos para ejecutarlos sin tener que recordar cada vez que queremos el rlwrap y dónde queremos el historial:
-bash-3.2$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Tue May 17 10:05:36 2011 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options SQL> show user; USER is "SYS" SQL> Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options -bash-3.2$ sqlplus_jordi SQL*Plus: Release 10.2.0.1.0 - Production on Tue May 17 10:05:43 2011 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options SQL> show user; USER is "JORDI" SQL>
Relacionados
Imprimir
Deja un comentario: