解决sqlplus中输错命令时的删除、光标键不能使用问题

sqlplus中打错sql命令时不能回撤,不能修改,只能回车重新写,非常麻烦。

看到 一位朋友写了,我也记录一下。

出错如下:BYS@bys1>aa   ^H^H^[[D^[[D^[[C^[[C^[[A^[[A

第一种方法:使用rlwrap+SQLPLUS方法

1.安装rlwrap软件

安装rlwrap之前需要readline。

readline可以直接在安装光盘中找到 ,也可以自己上传RMP包到光盘进行安装。

yum -y install readline-devel-5.1-3.el5.i386.rpm
然后安装rlwrap,需要自己上传安装包到 服务器,进行安装。

[root@oel-01 ~]# ls

 rlwrap-0.37.tar.gz

[root@oel-01 ~]# tar -zxvfrlwrap-0.37.tar.gz

[root@oel-01 rlwrap-0.37]# pwd

/root/rlwrap-0.37

[root@oel-01 rlwrap-0.37]# ./configure

[root@oel-01 rlwrap-0.37]# make

[root@oel-01 rlwrap-0.37]# make install

2.配置打开SQLPLUS/RMAN等时使用rlwrap

在操作ORACEL的用户的.bash_profile文件中增加如下两句:

[root@oel-01 oracle]# pwd

/home/oracle

[root@oel-01 oracle]# cat .bash_profile

……………………

alias sqlplus='rlwrap sqlplus'

alias rman='rlwrap rman'

配置环境变量参数后使用ORACLE用户验证下

[oracle@oel-01 ~]$ source .bash_profile

如下报错是因为我尚未安装ORACEL,所以没有SQLPLUST 和RMAN。但是可以看到 输入sqlplus使用的是rlwrap sqlplus

[oracle@oel-01 ~]$ sqlplus

rlwrap: Cannot execute sqlplus: No suchfile or directory

[oracle@oel-01 ~]$ rman

rlwrap: Cannot execute rman: No such fileor directory


当然不SOURCE环境变量而重登陆SSH客户端也是可以的。

方法二:属于临时解决方法--本人已验证,还是建议用上一种安装rlwrap软件的方法

临时的方法:

在console里输入stty erase ^H, 然后再使用sqlplus 来连接数据库。此时可以使用删除,但是不能使用上下左右的光标键,会乱码^[[A^[[B^[[B

[oracle@bys001 ~]$ stty erase ^H
[oracle@bys001 ~]$ sqlplus bys/bys
SQL*Plus: Release 11.2.0.1.0 Production on Mon Nov 4 22:42:37 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, OLAP, Data Mining and Real Application Testing options

BYS@bys1>aaa  bb^[[D^[[D^[[D^[[D^[[C^[[C^[[A^[[A^[[B^[[B

永久的方式:

在用户的.bash_profile里面加入:--同上一步修改环境变量的方法。

stty erase ^H

PUTTY中可以在PUTTY的设置中:
设置——TERMINAL--KEYBOARD --THE Backspace key  选中CONTROL-H

你可能感兴趣的:(解决sqlplus中输错命令时的删除、光标键不能使用问题)