天涯客Blog 2009-06-01
前段时间在RHEL5上安装了ORACLE10g,感觉在Linux下查看ORACLE后台进程非常的直观,但当使用简单SQL语句时,遇到了点问题,他不支持像WINDOWSCMD下sqlplus的回显功能,当要修改SQL语句时显得很不方便。
发现问题了就开始想办法吧,照例GOOGLE了下,有相同苦恼的朋友还真不少,于是按照某位网友的说法,下载了uniread,GNU-readline,Term-ReadLine-Gnu,IO-Tty等几个源码包,开始安装:
发现系统已经安装了一个readline版本:readline-5.1
接着安装Term-Readline,结果报错:找不到libreadline.so.6,说明该包依赖于readline6.0,看来是版本不一致阿......
第一次尝试不成功,查看下有没有别的方法,一个rlwrap的软件似乎也没完成任务。
开始第二次尝试,下载源码包rlwrap-0.30.tar.gz(该版本适合readline5.1,这里确认已安装readline-devel-5这个包)
tarzxvfrlwrap-0.30.tar.gz
cdrlwrap-0.30
./configure
make
makecheck
makeinstall
到这里,安装已经完成,接下来就是测试功能了
到oracle用户家目录下
vim.bash_profile
添加如下两个别名设置:
aliassqlplus='rlwrapsqlplus'
aliasrman='rlwraprman'
退出oracle用户并重新登录
sqlplus/assysdba
接下来执行简单的SQL语句,奇迹诞生了,SQL命令回显成功!
linux环境下使用sqlplus,在回删时往往会出现一串的乱码。出现乱码是由于oracle的sqlplus不使用gnu的readline库造成的。 或者把sttyerase^H添加到.cshrc中。