No funciona el Backspace en SQL Plus

Este post surge por el hecho de que cuando he realizado proyectos para distintas empresas en las que tengo acceso sólo vía una terminal al sistema operativo Linux o Unix, al entrar al SQL Plus para realizar los comandos, no funciona la tecla Backspace (o Retroceso en español).

Esto es algo engorroso porque a veces, es muy fácil que al tener un error de dedo, ya no se pueda corregir de manera rápida teniendo qué editar la instrucción o volver a teclear esperando no cometer un error.

De manera inicial, un buen amigo me dio el tip hace tiempo, pero lo olvidé porque no se me volvió a presentar. Sin embargo, recientemente me pasó y tuve que investigar nuevamente cómo corregirlo.

Pero he aquí la solución o una de ellas, primero hay que ver el panorama inicial, me conecto a una base de datos, tecleo un comando y a propósito me equivoco para tratar de corregir con el Backspace:

oracle@ooo_laptop:$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Fri Jun 8 11:24:00 2012

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

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, Oracle Label Security,
OLAP, Data Mining and Real Application Testing options

SQL> select *from^H^H^H
  2  
SQL>

Como se puede observar, al tratar de borrar los caracteres para poner un espacio después del asterisco (*), me marca unos ^H en vez de borrar el último caracter.

Bueno, esto es muy sencillo de corregir, hay que salir del SQL Plus, al prompt del sistema operativo para teclear el comando stty como se muestra a continuación:

oracle@ooo_laptop :$ stty erase ^H

con el cual, se está diciendo al sistema operativo que tome el ^H como representación del comando erase que corresponde al Backspace. De esta forma, al entrar nuevamente al SQL Plus y equivocarme:

oracle@ooo_laptop :$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Fri Jun 8 11:24:35 2012

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

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, Oracle Label Security,
OLAP, Data Mining and Real Application Testing options

SQL> select *from

ya podré usar el Backspace y corregir mi comando para que quede de manera correcta:

SQL> select *        2  from   v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE    11.2.0.3.0      Production
TNS for Solaris: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production

De acuerdo a lo investigué, hay una opción más usando el comando de sistema operativo:

set -o vi

pero no he tenido oportunidad de probarlo en otro ambiente, porque al menos en Solaris no me funcionó.

Si la información de este post te ha sido de utilidad o quieres que agregue algo más, deja por favor un comentario, contestaré a la brevedad.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: