解决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
登录了。