在Linux操作系统下使用Oracle的SQL*Plus工具有一个比较麻烦的地方:通过sqlplus命令进入到SQL*Plus控制台后,我们在Bash中已经习以为常的上下左右键突然变成了^[[A^[[B^[[D^[[C这样的"乱码"。熟悉ksh的朋友肯定要说我们这是大惊小怪了,不过对于从Windows平台转过来的一般用户而言,不小心按错一下就是4个错误的字符,而且历史命令也无法方便的回查了,确实挺郁闷的。别着急,如果你的Linux是Debian或者Ubuntu/Kubuntu,直接sudo apt-get install rlwrap安装这个小巧的readline扩展,然后就可以以rlwrap sqlplus的方式进入方向键"正常"的SQL*Plus了。当然,如果嫌每次敲rlwrap不爽,可以在/etc/profile或者自己的~ /.bashrc里面添加 alias sqlplus='rlwrap sqlplus'。其他发行版的朋友可以选择rpm包或者干脆从源码自己编译。
rlwrap 的安装使用:
安装rlwrap:
Download:http://utopia.knoware.nl/~hlub/uck/rlwrap/
[root@pbr-svr1 ~]# tar -zxvf rlwrap-0.37.tar.gz
[root@pbr-svr1 ~]# cd rlwrap-0.37
[root@pbr-svr1 rlwrap-0.37]# ./configure
[root@pbr-svr1 rlwrap-0.37]# make
[root@pbr-svr1 rlwrap-0.37]# make install
[root@pbr-svr1 rlwrap-0.37]# rlwrap
[root@pbr-svr1 ~]$ rlwrap
Usage: rlwrap [options] command ...
Options:
-a[password:] --always-readline[=password:]
-A --ansi-colour-aware
-b <chars> --break-chars=<chars>
-c --complete-filenames
-C <name|N> --command-name=<name|N>
-D <0|1|2> --history-no-dupes=<0|1|2>
-f <completion list> --file=<completion list>
-g <regexp> --forget-matching=<regexp>
-h --help
-H <file> --history-filename=<file>
-i --case-insensitive
-I --pass-sigint-as-sigterm
-l <file> --logfile=<file>
-n --no-warnings
-N --no-children
-o --one-shot
-O <regexp> --only-cook=<regexp>
-p[colour] --prompt-colour[=colour]
-P <input> --pre-given=<input>
-q <chars> --quote-characters=<chars>
-m[newline substitute] --multi-line[=newline substitute]
-r --remember
-R --renice
-v --version
-s <N> --histsize=<N> (negative: readonly)
-S <prompt> --substitute-prompt=<prompt>
-t <name> --set-term-name=<name>
-w <N> --wait-before-prompt=<N> (msec, <0 : patient mode)
-z <filter command> --filter=<filter command>
bug reports, suggestions, updates:
http://utopia.knoware.nl/~hlub/uck/rlwrap/
为 lrwrap sqlplus 命令添加别名:
[root@pbr-svr1 rlwrap-0.37]# vi /home/oracle/.bash_profile
添加
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
使用rlwrap
[oracle@pbr-svr1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 19 10:04:50 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select * from v$sga;
NAME VALUE
---------------------------------------- ----------
Fixed Size 2217952
Variable Size 2483030048
Database Buffers 838860800
Redo Buffers 16343040
使用向上键可调回最后执行的命令,按左右键光标在字符间来回切换,按Enter键重新执行或修改后按Enter键执行,可达到与Bash中相同的操作环境。
SQL> select * from v$sga;
NAME VALUE
---------------------------------------- ----------
Fixed Size 2217952
Variable Size 2483030048
Database Buffers 838860800
Redo Buffers 16343040