利用uniread 解决 Linux下的SQL*Plus 命令行历史回调功能

在 Windows 平台命令行中的 SQL*Plus 有命令行历史回调的功能,用键盘的"向上向下"箭头键对命令行的进行回调.而在Linux上则没有该功能,
但是可以用uniread来实现这个功能。

在安装该工具之前系统必须安装好Perl, 还有另外三个工具包:
GNU readline
http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html
上面这个网页目前最新的是5.2的版本,我在安装时有点问题,就从下面的链接下载了4.3的版本:
http://ftp.gnu.org/pub/gnu/readline/readline-4.3.tar.gz
Term::ReadLine::Gnu
http://search.cpan.org/dist/Term-ReadLine-Gnu/
IO::Tty
http://search.cpan.org/dist/IO-Tty/
uniread1.01
http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html

这4个包和展开后的目录如下:


tar -zxvf IO-Tty-1.07.tar.tar
tar -zxvf readline-4.3.tar.gz
tar -zxvf Term-ReadLine-Gnu-1.17a.tar.tar
tar -zxvf uniread-1.01.tar.gz
# ll
total 1072
drwxr-xr-x  5 oracle oinstall   4096 Dec 21 17:46 IO-Tty-1.07
-rwx------  1 oracle oinstall  22004 Dec 21 14:06 IO-Tty-1.07.tar.tar
drwxrwxr-x  6    286 wheel      4096 Dec 21 17:43 readline-4.3
-rwx------  1 root   root     961662 Dec 21 17:41 readline-4.3.tar.gz
drwxr-xr-x  6 oracle oinstall   4096 Dec 21 17:45 Term-ReadLine-Gnu-1.17
-rwx------  1 oracle oinstall  66489 Dec 21 14:06 Term-ReadLine-Gnu-1.17a.tar.tar
drwxr-xr-x  3 oracle oinstall   4096 Dec 21 17:47 uniread-1.01
-rwx------  1 oracle oinstall  16118 Dec 21 14:13 uniread-1.01.tar.gz
使用下面的命令编译、安装
cd readline-4.3
 ./configure ;make;make install;
  cd ../Term-ReadLine-Gnu-1.17
 perl Makefile.PL ;make;make install;
 cd ../IO-Tty-1.07
 perl Makefile.PL ;make;make install;
 cd ../uniread-1.01
 perl Makefile.PL ;make;make install;
 


都安装完了之后
切换到Oracle用户下:
$ uniread sqlplus /nolog
[uniread] Loaded history (0 lines)

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Dec 22 09:31:54 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL>

建一个别名:
$ alias sql='uniread sqlplus / as sysdba'
$ sql
[uniread] Loaded history (2 lines)

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Dec 22 09:34:01 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to an idle instance.

SQL>

查看uniread的Manual:
$man uniread

注意:这个工具是有通用性的,不止是 SQL*Plus可以这样用,其他类似的命令行程序(如:rman)也能用.
 
转自: http://www.itstreets.com/post/15.html

你可能感兴趣的:(sql,linux,数据库,Plus,uniread)