Linux 下sqlplus
乱码解决
在linux环境下使用sqlplus,在回删(backspace)时往往会出现 一串的乱码。出现乱码是由于oracle的sqlplus不使用gnu的readline库造成的。
解决方法有两种:
1、要使用回删键(backspace)时,同时按住ctrl键
2、设定环境变量
在bash下:$ stty erase ^h
或把 stty erase ^h 添加到.bash_profile中。
在csh下:$ stty erase ^H
或把 stty erase ^H 添加到.cshrc中。
在Linux
Shell中运行SQL*Plus的时候,并不提供浏览历史命令行的功能。相反的,在Windows操作系统上,当在DOS命令窗口中运行
SQL*Plus的时候,可以使用向上,向下键来跳回之前已经执行过的SQL语句,我觉得这个功能非常的方便,如果在linux下的oracle
执行sql要实现像windows那样子的功能,可以安装一个软件rlwrap ,目前的版本是0.30,可以到官方网站下.
1:安装
rlwrap-0.30.tar.gz
1):解压缩安装文件
[oracle@dbserver ~]$tar -zxvf rlwrap-0.30.tar.gz
2):切换到root用户,执行下面的命令
[root@dbserver ~]# cd /home/oracle/rlwrap-0.30
[root@dbserver rlwrap-0.30 ]#./configure
--prefix=/usr/local/rlwrap
[root@dbserver rlwrap-0.30]#make
[root@dbserver rlwrap-0.30]#make install
2:使用方法
$ rlwrap [-options]
[oracle@dbserver ~]$ which rlwrap
/usr/local/rlwrap
[oracle@dbserver ~]$ /usr/local/rlwrap/bin/rlwrap sqlplus / as
sysdba
如果嫌每次输入这么长的命令很麻烦的话,可以在 oracle用户下的 .bash_profile
中加入一条alias
alias sqlplus='/usr/local/rlwrap/bin/rlwrap sqlplus'
http://selboo.com.cn/post/414/
http://utopia.knoware.nl/~hlub/rlwrap/
======================================================================================
linux 上的oracle sqlplus 不能利用 上,
下键来查看命令,搜索到解决问题的办法,整理如下
安装软件rlwrap可以解决这个问题,该软件是用c写的程序
安装过程:
我们也可以查看解压后的tar包,查看README帮助文件
shell>tar -zxvf
rlwrap-0.36.tar.gz
shell>./configure
shell>make
shell>make
check
shell>make
install
这样就可以使用 rlwarp 了
[oracle@node1 oracle]$ rlwrap
sqlplus / as sysdba
这样登录数据库 ,
就可以使用上下键查找上次执行的命令.
如果每次都需要输入 rlwrap 感觉麻烦的话 , 还可以加入到
.bash_profile 中, 就不用每次都输入了
[oracle@node1
oracle]$ vi ~/.bash_profile
添加
alias sqlplus='rlwrap
sqlplus'
alias rman='rlwrap rman'
保存退出
[oracle@node1 oracle]$ source
~/.bash_profile
这样我们以后输入命令就方便多了,可以查看以前的命令可以修改前面输入错误的sql
,不用再重新敲一遍了
================================================================================
oracle sqlplus 方向键乱码
用sqlplus连接oracle,方向键老是乱码,SQL>
^[[A^[[A^[[B^[[B^[[D^,linux 用的是ubuntu 10.10 解决方法如下
一,下载安装readline
apt-get install libreadline5-dev//ubuntu要安装这个
wget ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz
tar zxvf readline-6.2.tar.gz
cd readline-6.2
wget ftp://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-001
wget ftp://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-001.sig
patch -p0
./configure
make && make install
因为我去下readline-6.2.tar.gz这个的时候,看见是http://ftp.gnu.org/gnu/readline/网址上而不是前面那个
注意:-p后面的是零,不是字母o。如果不安装apt-get install
libreadline5-dev这个话,安装rlwrap,./configure老是报错。
二,安装rlwrap
wget http://utopia.knoware.nl/~hlub/uck/rlwrap/rlwrap-0.37.tar.gz
tar zxvf rlwrap-0.37.tar.gz
cd rlwrap-0.37
./configure
make && make install
注意:先装readline,然后安装rlwrap,不然./configure的时候会报错的,如下
configure:
error:
You need the GNU readline
library(ftp://ftp.gnu.org/gnu/readline/ ) to build
this program!
三,修改用户根目录下的.bashrc
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
alias sqlplus='rlwrap sqlplus'//添加这一行
修改.bashrc要重起电脑。如果没有.bashrc,修改.bash_profile或者.profile文件。