學習ORACLE-linux中sqlplus上下鍵翻頁查看功能無效

安裝數據庫軟件之後,使用sqlplus嘗試連接,注意到上下方向鍵翻頁查看功能無效:

SQL> select name from v$database;

NAME
---------
ORCL

SQL> ^[[A^[[B

總結一下解決方法:

1.使用root用戶安裝rlwrap:

首先把源碼包拷貝到指定位置

[root@oracle12c ~]# cp /mnt/hgfs/VMware_Share/rlwrap-0.36.tar.gz /usr/local/src/

然後解壓源碼包

[root@oracle12c ~]# cd /usr/local/src/
[root@oracle12c src]# ls
rlwrap-0.36.tar.gz
[root@oracle12c src]# tar -zxvf rlwrap-0.36.tar.gz 
rlwrap-0.36/
rlwrap-0.36/completions/
rlwrap-0.36/completions/testclient
rlwrap-0.36/completions/coqtop
rlwrap-0.36/doc/
......

之後編譯源碼包代碼(檢查軟件依賴關係)

[root@oracle12c src]# ls
rlwrap-0.36  rlwrap-0.36.tar.gz
[root@oracle12c src]# cd rlwrap-0.36/
[root@oracle12c rlwrap-0.36]# ls
aclocal.m4  ChangeLog    configure     doc      Makefile.am  PLEA    test
AUTHORS     completions  configure.ac  filters  Makefile.in  README  TODO
BUGS        config.h.in  COPYING       INSTALL  NEWS         src     tools
[root@oracle12c rlwrap-0.36]# ./configure 
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
......
......
configure: error: 

You need the GNU readline library(ftp://ftp.gnu.org/gnu/readline/ ) to build
this program!

發現需要安裝readline,使用yum倉庫安裝

[root@oracle12c rlwrap-0.36]# yum install -y readline*
......
Installed:
  readline-devel.x86_64 0:6.2-9.el7                                             

Dependency Installed:
  ncurses-devel.x86_64 0:5.9-13.20130511.el7                                    

Complete!
[root@oracle12c rlwrap-0.36]# 

再次編譯源碼包:

[root@oracle12c rlwrap-0.36]# ./configure 
......
checking whether your readline knows about rl_readline_version... yes
Will rlwrap find command's working directory under /proc/<commands pid>/cwd? let's see...
checking for /proc/20988/cwd/configure.ac... yes


configure: creating ./config.status
config.status: creating Makefile
config.status: creating filters/Makefile
config.status: creating doc/Makefile
config.status: creating src/Makefile
config.status: creating doc/rlwrap.man
config.status: creating config.h
config.status: executing depfiles commands

Now do:
    make (or gmake)  to build rlwrap
    make check       for instructions how to test it
    make install     to install it


生成了makefile安裝文件。
下一步使用make命令根據makefile生成可執行文件:

[root@oracle12c rlwrap-0.36]# make
......
gcc -DDATADIR=\"/usr/local/share\"  -g -O2   -o rltest3 rltest3.o  -lutil  -lreadline -lcurses
make[2]: Leaving directory `/usr/local/src/rlwrap-0.36/src'
Making all in filters
make[2]: Entering directory `/usr/local/src/rlwrap-0.36/filters'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/usr/local/src/rlwrap-0.36/filters'
make[2]: Entering directory `/usr/local/src/rlwrap-0.36'
make[2]: Leaving directory `/usr/local/src/rlwrap-0.36'
make[1]: Leaving directory `/usr/local/src/rlwrap-0.36'
[root@oracle12c rlwrap-0.36]# 


下一步,使用make install運行安裝包:

[root@oracle12c rlwrap-0.36]# make install
Making install in doc
make[1]: Entering directory `/usr/local/src/rlwrap-0.36/doc'
make[2]: Entering directory `/usr/local/src/rlwrap-0.36/doc'
make[2]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/share/man/man1" || /usr/bin/mkdir -p "/usr/local/share/man/man1"
 /usr/bin/install -c -m 644 'rlwrap.1' '/usr/local/share/man/man1/rlwrap.1'
make[2]: Leaving directory `/usr/local/src/rlwrap-0.36/doc'
make[1]: Leaving directory `/usr/local/src/rlwrap-0.36/doc'
Making install in src
make[1]: Entering directory `/usr/local/src/rlwrap-0.36/src'
make[2]: Entering directory `/usr/local/src/rlwrap-0.36/src'
test -z "/usr/local/bin" || /usr/bin/mkdir -p "/usr/local/bin"
  /usr/bin/install -c 'rlwrap' '/usr/local/bin/rlwrap'
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/usr/local/src/rlwrap-0.36/src'
make[1]: Leaving directory `/usr/local/src/rlwrap-0.36/src'
Making install in filters
make[1]: Entering directory `/usr/local/src/rlwrap-0.36/filters'
make[2]: Entering directory `/usr/local/src/rlwrap-0.36/filters'
make[2]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/share/man/man3" || /usr/bin/mkdir -p "/usr/local/share/man/man3"
 /usr/bin/install -c -m 644 'RlwrapFilter.3pm' '/usr/local/share/man/man3/RlwrapFilter.3pm'
make[2]: Leaving directory `/usr/local/src/rlwrap-0.36/filters'
make[1]: Leaving directory `/usr/local/src/rlwrap-0.36/filters'
make[1]: Entering directory `/usr/local/src/rlwrap-0.36'
make[2]: Entering directory `/usr/local/src/rlwrap-0.36'
make[2]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/share/rlwrap" || /usr/bin/mkdir -p "/usr/local/share/rlwrap"
 /bin/sh /usr/local/src/rlwrap-0.36/tools/install-sh -c -m 644 'completions/testclient' '/usr/local/share/rlwrap/completions/testclient'
 /bin/sh /usr/local/src/rlwrap-0.36/tools/install-sh -c -m 644 'completions/coqtop' '/usr/local/share/rlwrap/completions/coqtop'
 /bin/sh /usr/local/src/rlwrap-0.36/tools/install-sh -c -m 644 'filters/README' '/usr/local/share/rlwrap/filters/README'
 /bin/sh /usr/local/src/rlwrap-0.36/tools/install-sh -c -m 644 'filters/RlwrapFilter.pm' '/usr/local/share/rlwrap/filters/RlwrapFilter.pm'
 /bin/sh /usr/local/src/rlwrap-0.36/tools/install-sh -c -m 644 'filters/RlwrapFilter.3pm' '/usr/local/share/rlwrap/filters/RlwrapFilter.3pm'
 /bin/sh /usr/local/src/rlwrap-0.36/tools/install-sh -c -m 644 'filters/count_in_prompt' '/usr/local/share/rlwrap/filters/count_in_prompt'
 /bin/sh /usr/local/src/rlwrap-0.36/tools/install-sh -c -m 644 'filters/pipeto' '/usr/local/share/rlwrap/filters/pipeto'
 /bin/sh /usr/local/src/rlwrap-0.36/tools/install-sh -c -m 644 'filters/logger' '/usr/local/share/rlwrap/filters/logger'
 /bin/sh /usr/local/src/rlwrap-0.36/tools/install-sh -c -m 644 'filters/null' '/usr/local/share/rlwrap/filters/null'
 /bin/sh /usr/local/src/rlwrap-0.36/tools/install-sh -c -m 644 'filters/unbackspace' '/usr/local/share/rlwrap/filters/unbackspace'
 /bin/sh /usr/local/src/rlwrap-0.36/tools/install-sh -c -m 644 'filters/pipeline' '/usr/local/share/rlwrap/filters/pipeline'
 /bin/sh /usr/local/src/rlwrap-0.36/tools/install-sh -c -m 644 'filters/ftp_filter' '/usr/local/share/rlwrap/filters/ftp_filter'
 /bin/sh /usr/local/src/rlwrap-0.36/tools/install-sh -c -m 644 'filters/simple_macro' '/usr/local/share/rlwrap/filters/simple_macro'
 /bin/sh /usr/local/src/rlwrap-0.36/tools/install-sh -c -m 644 'filters/template' '/usr/local/share/rlwrap/filters/template'
 /bin/sh /usr/local/src/rlwrap-0.36/tools/install-sh -c -m 644 'filters/scrub_prompt' '/usr/local/share/rlwrap/filters/scrub_prompt'
 /bin/sh /usr/local/src/rlwrap-0.36/tools/install-sh -c -m 644 'filters/paint_prompt' '/usr/local/share/rlwrap/filters/paint_prompt'
 /bin/sh /usr/local/src/rlwrap-0.36/tools/install-sh -c -m 644 'filters/censor_passwords' '/usr/local/share/rlwrap/filters/censor_passwords'
 /bin/sh /usr/local/src/rlwrap-0.36/tools/install-sh -c -m 644 'filters/listing' '/usr/local/share/rlwrap/filters/listing'
make  install-data-hook
make[3]: Entering directory `/usr/local/src/rlwrap-0.36'
chmod a+x /usr/local/share/rlwrap/filters/* 
make[3]: Leaving directory `/usr/local/src/rlwrap-0.36'
make[2]: Leaving directory `/usr/local/src/rlwrap-0.36'
make[1]: Leaving directory `/usr/local/src/rlwrap-0.36'
[root@oracle12c rlwrap-0.36]# 

最後使用oracle用戶測試使用:

[root@oracle12c ~]# su - oracle
Last login: Sat Jan 19 11:11:48 CST 2019 on pts/0

[oracle@oracle12c ~]$ rlwrap sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Sat Jan 19 17:20:12 2019

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


Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> select name from v$database;

NAME
---------
ORCL

SQL> select name from v$database;

NAME
---------
ORCL

SQL> 

已經能夠實現sqlplus的上下鍵翻頁查看功能了。

2.配置oracle用戶的命令別名

爲了不用每一次使用sqlplus都要加上rlwarp命令,可以配置別名,編寫oracle登錄shell的文件:

[root@oracle12c ~]# vim /home/oracle/.bashrc 
[root@oracle12c ~]# tail -n 4 /home/oracle/.bashrc 

# User specific aliases and functions
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
[root@oracle12c ~]# 

測試oracle用戶的使用:

[root@oracle12c ~]# su - oracle
Last login: Sat Jan 19 17:19:59 CST 2019 on pts/0
[oracle@oracle12c ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Sat Jan 19 17:28:48 2019

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


Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> select name from v$database;

NAME
---------
ORCL

SQL> select name from v$database;

NAME
---------
ORCL

SQL> 


完成

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章