前言
經常使用 Oracle 數據庫的朋友,應該對 sqlplus 這個命令行工具不會陌生。基本上每天工作都離不開它,但是這個工具有些不太好用:
- Linux 系統下 sqlplus 無法上下文切換查看編輯歷史命令,敲錯命令需要按住 CTRL 鍵才能刪除
- SQL 查詢,輸出結果格式錯亂,每次都需要手動 SET 和 COL 調整列寬
- 當前會話不顯示實例名和登錄用戶,容易誤操作用戶,用戶信息顯示不夠明顯
注意: 以上均為 sqlplus 默認配置下存在的問題。
那么問題來了,這些都可以解決嗎?
當然,我寫這篇就是為了介紹如何優化 sqlplus 命令行嘛!且聽我慢慢道來哉~
演示配置
首先介紹下,主要分兩個部分:
- 上下文切換:rlwrap + readline
- 美化輸出格式:glogin.sql
一、上下文切換
相信大家在 Linux 主機使用 sqlplus 命令行工具時,經常會遇到命令輸錯不好回退,或者剛輸入的命令想再次執行,無法通過鍵盤上下翻看的情況。
上面的情況曾經也一直困惑著我,后來經過研究,我發現了解決方案!這就來分享給大家,希望也能幫助到你。
通過 rlwrap + readline 配合使用,可以完美解決這個問題,接下來,我就來演示一下如何配置使用。
1、Linux 主機配置 yum 源
由于需要使用 yum 安裝 readline ,下面配置一下:
- ##查看系統版本
- cat /etc/system-release
- ##上傳對應主機版本iso文件
- scp rhel-server-7.9-x86_64-dvd.iso [email protected]:/soft
- ##掛載系統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
通過以上步驟,我們已經成功掛載系統鏡像,可以開始安裝 redline。
2、安裝 readline 依賴包
- yum install -y readline*
如果沒有系統 ISO 鏡像源,也可以直接在網上直接下載 readline 安裝包進行安裝:
- wget -c ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz
上傳安裝包:
- scp readline-6.2.tar.gz [email protected]:/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