LINUX下使用SQLPLUS历史回调功能

当在Linux Shell中运行SQL*Plus的时候,并不提供浏览历史命令行的功能。相反的,在Windows操作系统上,当在DOS命令窗口中运行 SQL*Plus的时候,可以使用向上,向下键来跳回之前已经执行过的SQL语句。你可以 根据需要修改他们,然后按[Enter]重新提交执行。

为了在Linux中达到同样的目的,你可以安装rlwrap,这个程式本身是个Shell,可以运行任何你提供给它的命令包括参数,并添加命令历史浏览功能,并且解决在linux环境下使用sqlplus,在回删(backspace)时往往会出现 一串的乱码记linux sqlplus中的只能用delete去删除错误的输入问题。


 Therlwrap program is under the GPL license

1:安装

rlwrap-0.28.tar.gz下载地址:http://utopia.knoware.nl/~hlub/uck/rlwrap/

1):解压缩安装文件

[oracle@Channel-MQ3 ~]$gunzip rlwrap-0.28.tar.gz

[oracle@Channel-MQ3 ~]$tar xvf rlwrap-0.28.tar

2):切换到root用户,执行下面的命令

[root@Channel-MQ3 ~]# cd/home/oracle/rlwrap-0.28

[root@Channel-MQ3 rlwrap-0.28]# ls

aclocal.m4 completions configure INSTALL READMETODO

AUTHORS config.h configure.ac Makefile src tools

bash30-005.patch config.h.in COPYING Makefile.amstamp-h1

BUGS config.log distribution Makefile.in test

ChangeLog config.status doc NEWS test.log

[root@Channel-MQ3 rlwrap-0.28]#./configure


(在安装rlwrap-0.37.tar.gz,configure步骤提示缺少包,按照提示

configure: error: 

You need the GNU readlinelibrary(ftp://ftp.gnu.org/gnu/readline/ ) to build

this program!

需要libtermcap-devel-2.0.8-46.1.i386.rpm和readline-devel-5.1-1.1.i386.rpm,rpm安装之后重新configure->make->makeinstall,完成安装。

-The End-)

[root@Channel-MQ3 rlwrap-0.28]#make

[root@Channel-MQ3 rlwrap-0.28]#make install

2:使用

$ rlwrap [-options] <command> <args>

[oracle@Channel-MQ3 ~]$ which rlwrap


[oracle@Channel-MQ3 ~]$ rlwrap sqlplus / assysdba

[oracle@test ~]$ which lrwrap


/usr/bin/which: no lrwrap in(/u01/app/oracle/product/11.2.0/db_1/bin:/u01/app/oracle/product/11.2.0/db_1/Apache/Apache/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin:/u01/app/oracle/product/11.2.0/db_1/bin:/home/oracle/bin)


测试:

[oracle@test ~]$ rlwrap sqlplus /nolog


SQL*Plus: Release 11.2.0.1.0 Production on ThuOct 18 11:35:59 2012


 


Copyright (c) 1982, 2009, Oracle.  All rights reserved.Connected to:

Oracle Database 10g Enterprise Edition Release10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Miningoptions

select name fromv$database;


NAME VALUE

-------------------- ----------

Fixed Size 1219856

Variable Size 121635568

Database Buffers 310378496

Redo Buffers 7168000

-- 使用向上键调回最后执行的命令,按[Enter]重新执行或修改后按[Enter]执行

本文出自 “沙漠之鹘” 博客,转载请与作者联系!

你可能感兴趣的:(sqlplus问题)