前言
經(jīng)常使用 Oracle 數(shù)據(jù)庫(kù)的朋友,應(yīng)該對(duì) sqlplus 這個(gè)命令行工具不會(huì)陌生。基本上每天工作都離不開(kāi)它,但是這個(gè)工具有些不太好用:
- Linux 系統(tǒng)下 sqlplus 無(wú)法上下文切換查看編輯歷史命令,敲錯(cuò)命令需要按住 CTRL 鍵才能刪除
- SQL 查詢,輸出結(jié)果格式錯(cuò)亂,每次都需要手動(dòng) SET 和 COL 調(diào)整列寬
- 當(dāng)前會(huì)話不顯示實(shí)例名和登錄用戶,容易誤操作用戶,用戶信息顯示不夠明顯
注意: 以上均為 sqlplus 默認(rèn)配置下存在的問(wèn)題。
那么問(wèn)題來(lái)了,這些都可以解決嗎?
當(dāng)然,我寫(xiě)這篇就是為了介紹如何優(yōu)化 sqlplus 命令行嘛!且聽(tīng)我慢慢道來(lái)哉~
演示配置
首先介紹下,主要分兩個(gè)部分:
- 上下文切換:rlwrap + readline
- 美化輸出格式:glogin.sql
一、上下文切換
相信大家在 Linux 主機(jī)使用 sqlplus 命令行工具時(shí),經(jīng)常會(huì)遇到命令輸錯(cuò)不好回退,或者剛輸入的命令想再次執(zhí)行,無(wú)法通過(guò)鍵盤(pán)上下翻看的情況。
上面的情況曾經(jīng)也一直困惑著我,后來(lái)經(jīng)過(guò)研究,我發(fā)現(xiàn)了解決方案!這就來(lái)分享給大家,希望也能幫助到你。
通過(guò) rlwrap + readline 配合使用,可以完美解決這個(gè)問(wèn)題,接下來(lái),我就來(lái)演示一下如何配置使用。
1、Linux 主機(jī)配置 yum 源
由于需要使用 yum 安裝 readline ,下面配置一下:
- ##查看系統(tǒng)版本
- cat /etc/system-release
- ##上傳對(duì)應(yīng)主機(jī)版本iso文件
- scp rhel-server-7.9-x86_64-dvd.iso root@10.211.55.110:/soft
- ##掛載系統(tǒng)iso鏡像源
- mount -o loop /soft/rhel-server-7.9-x86_64-dvd.iso /mnt
- ##配置yum鏡像源
- mv /etc/yum.repos.d/* /tmp/
- echo "[local]" >> /etc/yum.repos.d/local.repo
- echo "name = local" >> /etc/yum.repos.d/local.repo
- echo "baseurl = file:///mnt/" >> /etc/yum.repos.d/local.repo
- echo "enabled = 1" >> /etc/yum.repos.d/local.repo
- echo "gpgcheck = 0" >> /etc/yum.repos.d/local.repo
通過(guò)以上步驟,我們已經(jīng)成功掛載系統(tǒng)鏡像,可以開(kāi)始安裝 redline。
2、安裝 readline 依賴包
- yum install -y readline*
如果沒(méi)有系統(tǒng) ISO 鏡像源,也可以直接在網(wǎng)上直接下載 readline 安裝包進(jìn)行安裝:
- wget -c ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz
上傳安裝包:
- scp readline-6.2.tar.gz root@10.211.55.110:/soft
解壓安裝:
- tar -zxvf readline-6.2.tar.gz
- cd readline-6.2
- ./configure && make && make install
3、rlwrap 安裝
- tar -xvf rlwrap-0.42.tar.gz
- cd rlwrap-0.42
- ./configure && make && make install
下載地址:https://github.com/hanslub42/rlwrap/releases/tag/v0.45.2