Oracle的sqlplus命令行工具和TimesTen相比,实在是太不方便。不能用上下键回溯命令。
不过今天找到一个rlwrap工具,是readline的warpper程序,配合sqlplus使用,终于实现了历史命令回溯功能,太方便了。
首先确保readline的程序包和开发包已安装:
sudo yum install readline-devel readline -y
sudo yum install git -y
sudo yum install autoconf automake -y
# rpm -qa|grep readline
readline-devel-6.2-9.el7.x86_64
readline-6.2-9.el7.x86_64
从http://utopia.knoware.nl/~hlub/rlwrap/#rlwrap下载rlwrap的安装包,tar -zxvf解压后,按照README文件中的说明make install即可。必须使用root安装。
或者直接git clone:
# git clone https://github.com/hanslub42/rlwrap
Cloning into 'rlwrap'...
remote: Enumerating objects: 1547, done.
remote: Total 1547 (delta 0), reused 0 (delta 0), pack-reused 1547
Receiving objects: 100% (1547/1547), 668.19 KiB | 371.00 KiB/s, done.
Resolving deltas: 100% (1089/1089), done.
使用时在sqlplus前加rlwrap即可:
$ rlwrap sqlplus cacheadm/oracle@ttorcl
这工具太好用了!
补充
由于以上提到的网站已无法访问,因此可以从github上下载源代码0.42版本。
但源代码是不带configure脚本的,可以用以下命令生成,使用root用户(前三个命令依赖于autoconf和automake包,configure时需要readline-devel包,均通过yum安装):
cd rlwrap
aclocal
autoconf
autoheader
mkdir tools
automake --add-missing
./configure
make install
参考
- http://www.dba-oracle.com/t_using_up_arrow_command_history.htm
- https://tylermuth.wordpress.com/2011/08/31/static-version-of-rlwrap-for-sqlplus/