Dr. Alex Dong's Blog

Linux中Oracle的sqlplus下退格和Del键无效的问题解决

笔者需要经常通过SecureCRT远程登录Oracle。在使用过程中,发现在sqlplus命令行不能删除打错的SQL指令。具体问题如下图所示。

利用rlwrap工具解决方法:

安装rlwrap和readline库

CentOS下可以用EPEL的yum源直接安装,步骤如下:

1)RHEL/CentOS/SL Linux 6.x 下安装 EPEL6 yum源:

32位系统选择:

rpm -ivh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

64位系统选择:

rpm -ivh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

导入key:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

默认会在/etc/yum.repos.d/下创建epel.repo和epel-testing.repo两个配置文件。

(2)安装rlwrap和readline:

yum install rlwrap readline readline-devel

其他Linux发行版如果源里没有rlwrap和readline的(如SUSE企业版默认没有这两个包),要分别下载这两个源码包编译安装一下。

wget ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz# tar zxvf readline-6.2.tar.gz# cd readline-6.2/# ./configure# make# make install  # wget http://utopia.knoware.nl/~hlub/rlwrap/rlwrap-0.37.tar.gz# tar zxvf rlwrap-0.37.tar.gz# cd rlwrap-0.37/# ./configure# make# make install

(3)设置sqlplus的系统别名:

vim /home/oracle/.bash_profile

在头部或尾部添加:

alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'

退出oracle用户再重新登录就ok。 如下图所示:

参考文献https://www.jb51.net/article/76821.htm

adminLinux中Oracle的sqlplus下退格和Del键无效的问题解决