Linux中Oracle的sqlplus下退格和Del鍵無效的問題解決
PS:近來因工作需要業(yè)余在學(xué)習(xí)oracle,發(fā)現(xiàn)通過SecureCRT或putty等SSH客戶端遠(yuǎn)程登錄Linux下oracle的sqplus時(shí),輸錯(cuò)字符后按Backspace鍵或Del鍵刪除時(shí),會(huì)出現(xiàn)^H或其他亂七八糟的的字符,感覺非常別扭不習(xí)慣,雖然可以通過Ctrl+Backspace組合鍵實(shí)現(xiàn)刪除功能,但是嚴(yán)重影響使用效率。google了一番,終于完美解決此問題??偨Y(jié)記錄如下,本文是此問題最完整的總結(jié):
亂七八糟的字符如圖:
一、SecureCRT終端里的解決方法:(不完美)
在SecureCRT終端里,如果要在sqlplus下使用Backspace來刪除字符,有兩種臨時(shí)方法。
第一種是使用stty命令重新定義^H,可以在使用sqlplus之前執(zhí)行stty erase ^H,也可以把這一句放到oracle用戶的.bash_profile文件里。
stty命令簡(jiǎn)介:
Unix或者Linux中有個(gè)stty命令,它的作用是打印或更改terminal(終端)的設(shè)置。
常用參數(shù):
-a --all 用人類可讀表格,打印出所有現(xiàn)有設(shè)置
-g --save 用stty可讀表格,打印出所有現(xiàn)有設(shè)置
--help 幫助
--version 版本
查看當(dāng)前stty現(xiàn)有設(shè)置,如圖:
第二種是使用SecureCRT的設(shè)置,在會(huì)話屬性的Terminal->Emulation->Mapped Keys中,選中Backspace sends delete或Delete sends backspace中的其中一個(gè),并確保另一個(gè)不被選中。
另一個(gè)問題是bash shell下的sqlplus中使用上下箭頭無法顯示上下命令,而只是顯示^[[A,這個(gè)問題可以安裝rlwrap這個(gè)工具解決!
二、利用rlwrap工具解決方法:(完美)
1、安裝rlwrap和readline庫
CentOS下可以用EPEL的yum源直接安裝,步驟如下:
(1)RHEL/CentOS/SL Linux 6.x 下安裝 EPEL6 yum源:
32位系統(tǒng)選擇:
# rpm -ivh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
64位系統(tǒng)選擇:
# rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
導(dǎo)入key:
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
默認(rèn)會(huì)在/etc/yum.repos.d/下創(chuàng)建epel.repo和epel-testing.repo兩個(gè)配置文件。
(2)安裝rlwrap和readline:
# yum install rlwrap readline readline-devel
其他Linux發(fā)行版如果源里沒有rlwrap和readline的(如SUSE企業(yè)版默認(rèn)沒有這兩個(gè)包),要分別下載這兩個(gè)源碼包編譯安裝一下。
# wget ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz # tar zxvf readline-6.2.tar.gz # cd readline-6.2/ # ./configure # make # make install # wget http://utopia.knoware.nl/~hlub/rlwrap/rlwrap-0.37.tar.gz # tar zxvf rlwrap-0.37.tar.gz # cd rlwrap-0.37/ # ./configure # make # make install
(3)設(shè)置sqlplus的系統(tǒng)別名:
# vim /home/oracle/.bash_profile
在頭部或尾部添加:
alias sqlplus='rlwrap sqlplus' alias rman='rlwrap rman'
退出oracle用戶再重新登錄就ok?,F(xiàn)在sqlplus用起來就很爽很習(xí)慣了!
- Oracle基礎(chǔ):程序中調(diào)用sqlplus的方式
- Oracle基礎(chǔ):通過sqlplus執(zhí)行sql語句后的結(jié)果進(jìn)行判斷
- 使用sqlplus命令行工具為oracle創(chuàng)建用戶和表空間
- oracle11g管理員密碼忘記怎么辦 sqlplus解決忘記密碼問題
- Linux下Oracle中SqlPlus時(shí)上下左右鍵亂碼問題的解決辦法
- oracle 中 sqlplus命令大全
- Python調(diào)用SQLPlus來操作和解析Oracle數(shù)據(jù)庫的方法
- oracle 安裝與SQLPLUS簡(jiǎn)單用法
- oracle sqlplus 常用命令大全
- Oracle通過sqlplus連接數(shù)據(jù)庫的方式
相關(guān)文章
oracle執(zhí)行cmd的實(shí)現(xiàn)方法
裝了一個(gè)oracle db11g,于是想試一下網(wǎng)上流傳的在sqlplus中執(zhí)行cmd的一些命令,也不知怎么的,沒一個(gè)好用的,可能是網(wǎng)上轉(zhuǎn)來轉(zhuǎn)去的轉(zhuǎn)錯(cuò)了.2009-04-04Linux環(huán)境下重啟Oracle數(shù)據(jù)庫詳細(xì)圖文教程
Linux系統(tǒng)下網(wǎng)站出現(xiàn)問題的時(shí)候,可通過重啟oracle數(shù)據(jù)庫進(jìn)行處理,這篇文章主要給大家介紹了關(guān)于Linux環(huán)境下重啟Oracle數(shù)據(jù)庫詳細(xì)圖文教程的相關(guān)資料,需要的朋友可以參考下2023-12-12oracle中如何查詢所有用戶表的表名、主鍵名稱、索引及外鍵等
在與Oracle進(jìn)行數(shù)據(jù)庫操作時(shí),往往會(huì)需要查詢數(shù)據(jù)庫表列表,以便對(duì)其進(jìn)行操作,這篇文章主要給大家介紹了關(guān)于oracle中如何查詢所有用戶表的表名、主鍵名稱、索引及外鍵等的相關(guān)資料,需要的朋友可以參考下2023-12-12Oracle?查詢語句限制只選擇最前面幾行和最后面幾行的實(shí)現(xiàn)方式
在Oracle中,可以使用?ROWNUM?關(guān)鍵字來限制查詢結(jié)果的行數(shù),這篇文章主要介紹了Oracle?查詢語句限制只選擇最前面幾行和最后面幾行的實(shí)現(xiàn)方式,需要的朋友可以參考下2023-12-12oracle連接數(shù)據(jù)庫報(bào)錯(cuò)ORA-12170:TNS連接超時(shí)解決辦法
這篇文章主要給大家介紹了關(guān)于oracle連接數(shù)據(jù)庫報(bào)錯(cuò)ORA-12170:TNS連接超時(shí)的解決辦法,ORA-12170是Oracle數(shù)據(jù)庫連接錯(cuò)誤,表示數(shù)據(jù)庫連接超時(shí),文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01Oracle數(shù)據(jù)庫中的級(jí)聯(lián)查詢、級(jí)聯(lián)刪除、級(jí)聯(lián)更新操作教程
這里整理了Oracle中的三種級(jí)聯(lián)操作,其中Oracle定義外健的時(shí)候可以定義級(jí)聯(lián)刪除,但是沒有級(jí)聯(lián)修改的語法,當(dāng)然可以用觸發(fā)器實(shí)現(xiàn),下面我們?cè)敿?xì)來看Oracle數(shù)據(jù)庫中的級(jí)聯(lián)查詢、級(jí)聯(lián)刪除、級(jí)聯(lián)更新操作教程2016-05-05