教你玩转 SQLPLUS,工作效率提升 200%

时间:2022-06-10 21:09:47

教你玩转 SQLPLUS,工作效率提升 200%

前言

经常使用 Oracle 数据库的朋友,应该对 sqlplus 这个命令行工具不会陌生。基本上每天工作都离不开它,但是这个工具有些不太好用:

  • Linux 系统下 sqlplus 无法上下文切换查看编辑历史命令,敲错命令需要按住 CTRL 键才能删除
  • SQL 查询,输出结果格式错乱,每次都需要手动 SET 和 COL 调整列宽
  • 当前会话不显示实例名和登录用户,容易误操作用户,用户信息显示不够明显

注意: 以上均为 sqlplus 默认配置下存在的问题。

那么问题来了,这些都可以解决吗?

当然,我写这篇就是为了介绍如何优化 sqlplus 命令行嘛!且听我慢慢道来哉~

演示配置

首先介绍下,主要分两个部分:

  • 上下文切换:rlwrap + readline
  • 美化输出格式:glogin.sql

一、上下文切换

相信大家在 Linux 主机使用 sqlplus 命令行工具时,经常会遇到命令输错不好回退,或者刚输入的命令想再次执行,无法通过键盘上下翻看的情况。

上面的情况曾经也一直困惑着我,后来经过研究,我发现了解决方案!这就来分享给大家,希望也能帮助到你。

通过 rlwrap + readline 配合使用,可以完美解决这个问题,接下来,我就来演示一下如何配置使用。

1、Linux 主机配置 yum 源

由于需要使用 yum 安装 readline ,下面配置一下:

  1. ##查看系统版本
  2. cat /etc/system-release
  3. ##上传对应主机版本iso文件
  4. scp rhel-server-7.9-x86_64-dvd.iso root@10.211.55.110:/soft

教你玩转 SQLPLUS,工作效率提升 200%

  1. ##挂载系统iso镜像源
  2. mount -o loop /soft/rhel-server-7.9-x86_64-dvd.iso /mnt
  3. ##配置yum镜像源
  4. mv /etc/yum.repos.d/* /tmp/
  5. echo "[local]" >> /etc/yum.repos.d/local.repo
  6. echo "name = local" >> /etc/yum.repos.d/local.repo
  7. echo "baseurl = file:///mnt/" >> /etc/yum.repos.d/local.repo
  8. echo "enabled = 1" >> /etc/yum.repos.d/local.repo
  9. echo "gpgcheck = 0" >> /etc/yum.repos.d/local.repo

教你玩转 SQLPLUS,工作效率提升 200%

教你玩转 SQLPLUS,工作效率提升 200%

通过以上步骤,我们已经成功挂载系统镜像,可以开始安装 redline。

2、安装 readline 依赖包

  1. yum install -y readline*

如果没有系统 ISO 镜像源,也可以直接在网上直接下载 readline 安装包进行安装:

  1. wget -c ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz

教你玩转 SQLPLUS,工作效率提升 200%

上传安装包:

  1. scp readline-6.2.tar.gz root@10.211.55.110:/soft

教你玩转 SQLPLUS,工作效率提升 200%

解压安装:

  1. tar -zxvf readline-6.2.tar.gz
  2. cd readline-6.2
  3. ./configure && make && make install

3、rlwrap 安装

  1. tar -xvf rlwrap-0.42.tar.gz
  2. cd rlwrap-0.42
  3. ./configure && make && make install

下载地址:https://github.com/hanslub42/rlwrap/releases/tag/v0.45.2