在Linux上使用SQL*Plus有一个相当不方便的地方,那就是没有历史回调功能。在Windows上的SQL*Plus可以用“向上向下”按键来调用之前使用过的命令,修改、编辑、重复之前的命令都相当方便。如何解决这个问题呢?可以利用Uniread解决这一问题。
二、安装Uniread的系统准备
1 Perl
2 readline
3 IO-Tty
4 Term-ReadLine-Gnu
二、安装Uniread
(1)安装Perl
安装Uniread之前,系统中必须要有Perl语言的支持。一般情况下,在系统安装时会默认安装perl,可通过命令rpm –qa | grep perl查看系统中是否安装了perl,如果没安装,可使用yum或者rpm工具进行安装。
利用yum安装:yum install perl,
利用rpm安装:rpm –ivh perl-5.10.1-129.el6.i686.rpm(此为示例)
(2)安装realine
通过命令rpm –qa | grep readline查看系统中是否安装了readline,如果没安装,可使用yum或者rpm工具进行安装。
利用yum安装:yum install readline,
利用rpm安装:rpm –ivh readline-6.0-4.el6.i686.rpm(此为示例)
(3)安装IO-Tty
下载IO-Tty-1.07.tar.gz,通过命令tar –xzvf IO-Tty-1.07.tar.gz解压文件,进入解压后的文件夹,运行命令perl Makefile.PL,运行命令make&& make install完成编译和安装
(4)安装Term-ReadLine-Gnu
下载Term-ReadLine-Gnu-1.16.tar.gz,通过命令tar –xzvf Term-ReadLine-Gnu-1.16.tar.gz解压文件,进入解压后的文件夹,运行命令perl Makefile.PL,运行命令make&& make install完成编译和安装
(5)安装uniread
下载uniread-1.01.tar.gz,通过命令tar –xzvf uniread-1.01.tar.gz解压文件,进入解压后的文件夹,运行命令perl Makefile.PL,运行命令make&& make install完成编译和安装
三、使用uniread
通过命令uniread sqlplus / as sysdba进入sql*plus,此时便可以通过上下键查看历史输入了。为方便使用,可在oracle用户的家目录下的.bashrc文件中加入一行alias sqlplus=’uniread sqlplus’
FAQ
(1)安装Term-ReadLine-Gnu时报“Could notfind neither libtermcap.a, libncurses.a, or libcurses.”
系统缺乏compat-libtermcap、ncurses-devel和readline-devel软件包,可通过yum或rpm工具进行安装。
yum:
yum install compat-libtermcap
yum install ncurses-devel
yum install readline-devel
rpm:
rpm –ivh compat-libtermcap-2.0.8-49.el6.i686.rpm(此为示例)
rpm –ivh ncurses-devel-5.7-3.20090208.el6.i686.rpm(此为示例)
rpm –ivh readline-devel-6.0-4.el6.i686.rpm(此为示例)
(2)如何删除历史输入?
通过命令echo ‘’ > ~/.uniread/sqlplus 即可清理掉sql*plus中的历史输入了。