解决SQLPLUS无法使用上下箭头
1 问题描述
SQLPLUS中使用上下箭头无法获取历史命令,如下图所示:

按上下箭头会显示^[[A/^[[B。
2 解决方案
需要安装rlwrap,可以的话可以用包管理器安装,笔者环境CentOS,这里从源码编译安装。
2.1 下载源码
官方Github可以戳这里,目前最新的版本为0.43:

2.2 安装
上传到服务器后,解压编译安装:
tar -zxvf rlwrap-0.43.tar.gz
cd rlwrap-0.43
./configure
make
make install
笔者在./configure这步遇到以下错误:

安装一个库解决:
yum install readline-devel
再次./configure就没有问题了:

2.3 测试
使用rlwrap sqlplus代替原来的sqlplus登录:
rlwrap sqlplus xxx/xxx as sysdba
这样就可以使用上下箭头了。
因为笔者在root上进行测试,在oracle用户上进行测试可能会出现权限问题,如图:

到对应目录下创建该文件:
cd /home/oracle
sudo touch .sqlplus_history
创建了之后还是不能执行:

修改组权限即可:
sudo chmod g+w .sqlplus_history

2.4 别名
为了方便使用可以加上一个别名:
alias sp='rlwrap sqlplus'
这样下次就可以使用
sp xxx/xxx as sysdba
登录了。

浙公网安备 33010602011771号