Oracle SQL plus设置篇

安装完Oracle和db之后,对于Oracle的各种交互命令窗口使用起来不是很得心应手,上下左右键包括删除操作都需要很麻烦,我们可以进行一些设置使我们更丝滑的使用Oracle的各种交互命令如SQL plus、RMAN、lsnrctl等。

1. 定义别名及配置环境变量

通过设置别名,可以更方便地调用 Oracle 常用命令,并配置环境变量以支持更优的交互体验。

1.1 编辑环境变量

使用 vi 编辑 oracle 用户的环境变量文件:

vi /home/oracle/.bash_profile

在文件中添加以下内容:

## 配置 Oracle 用户环境变量
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
alias lsnrctl='rlwrap lsnrctl'
alias asmcmd='rlwrap asmcmd'
alias adrci='rlwrap adrci'
alias alert='tail -n 200 -f $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/trace/alert_$ORACLE_SID.log'
alias bdump='cd $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/trace'

1.2 激活配置

保存文件后运行以下命令,使配置生效:

source /home/oracle/.bash_profile

2. 安装并配置 rlwrap

关于 rlwrap

rlwrap 是一个命令行工具,用于增强输入功能,如支持上下键历史记录、左右键编辑等功能。

源码安装解决sqlplus 中上下左右键无法使用,需要在环境变量里面定义。

2.1 下载 rlwrap 源码

需要下载 rlwrap 的源代码。可以在 rlwrap 的官方网站或者其他源获取到这个文件。

示例下载文件:rlwrap-0.42.tar.gz

2.2 解压源码

tar -zxvf rlwrap-0.42.tar.gz
cd rlwrap-0.42

2.3 检查依赖项

安装rlwrap错误的问题解决方法

checking for tgetent... no
checking for tgetent in -ltinfo... no
checking for tgetent in -lcurses... no
checking for tgetent in -lncurses... no
checking for tgetent in -ltermcap... no
configure: WARNING: No termcap nor curses library found
checking for readline in -lreadline... no
configure: error: 
You need the GNU readline library(ftp://ftp.gnu.org/gnu/readline/ ) to build
this program!

配置过程可能提示缺失以下依赖项:

  • libtermcap-devel
  • readline-devel

检查自己的操作系统架构,去阿里镜像站去下载 阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区

[oracle@orcl:/soft/rlwrap-0.42]$ uname -a
Linux orcl 3.10.0-957.el7.x86_64 #1 SMP Thu Oct 4 20:48:51 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

下载对应的软件包

或者查看自己光盘中是否集成了,我的是在光盘下Packages里找到了

2.4 编译与安装

  1. 运行配置命令:

    ./configure

  2. 编译源码:

    make

  3. 安装工具(需要root权限):

    sudo make install

2.5 验证安装

检查 rlwrap 是否安装成功:

[oracle@orcl:/soft/rlwrap-0.42]$ which rlwrap
/usr/local/bin/rlwrap
[oracle@orcl:/soft/rlwrap-0.42]$ rlwrap --version
rlwrap 0.42
[oracle@orcl:/soft/rlwrap-0.42]$ 

3. SQL*Plus 设置

通过调整 login.sqlglogin.sql 配置文件,可以增强 SQL*Plus 的默认行为,例如自定义提示符、调整输出格式等。

3.1 配置文件路径

  • 配置文件路径:$ORACLE_HOME/sqlplus/admin/glogin.sql

使用 vi 编辑文件:

vi $ORACLE_HOME/sqlplus/admin/glogin.sql

3.2 常用配置示例

设置提示符显示用户名和数据库名
set sqlprompt "&_user@&_connect_identifier> "
SQL*Plus 输出设置

以下是推荐的常用设置:

-- 设置默认编辑器为 vi
define _editor=vi

-- 开启 DBMS_OUTPUT 并设置缓冲区大小
set serveroutput on size 1000000

-- 去除假脱机输出文本的多余空格
set trimspool on

-- 设置显示 LONG 和 CLOB 数据类型的最大字节数
set long 5000

-- 设置文本输出宽度为 200 字符
set linesize 200

-- 设置每页标题显示频率
set pagesize 9999

-- 设置 AUTOTRACE 计划输出宽度
column plan_plus_exp format a80
动态 SQL 提示符

动态显示当前用户和数据库名称:

column global_name new_value gname
set termout off
define gname=idle
select lower(user) || '@' || substr(global_name,1,instr(global_name,'.')-1) as global_name
from global_name;
set sqlprompt '&gname>'
set termout on
完整配置示例
-- 默认编辑器
define _editor=vi
-- DBMS_OUTPUT 默认开启
set serveroutput on size 1000000
-- 文本行设置
set trimspool on
set long 5000
set linesize 200
set pagesize 9999
-- 提示符
column global_name new_value gname
set termout off
define gname=idle
select lower(user) || '@' || substr(global_name,1,instr(global_name,'.')-1) as global_name
from global_name;
set sqlprompt '&gname>'
set termout on

通过以上配置,Oracle 的使用将更加丝滑。设置别名和环境变量能够快速调用常用命令,rlwrap 提升了命令行输入体验,SQL*Plus 配置则增强了输出的可读性和提示信息的直观性。完成这些设置后,无论是日常开发还是维护任务,都将变得更加高效与便捷。

4、SQL plus常用命令整理

|-------------------------|------------------------------------------------------------------|
| 命令 | 功能描述 |
| @脚本名 | 执行脚本 |
| ! 操作系统命令 | 执行操作系统命令 |
| / | 执行上一条 SQL 命令 |
| sqlplus 用户名/密码@IP/服务名 | 登录数据库,默认不写数据库名连接本地,例:sqlplus scott/tiger@192.168.xx.xx:1521/prod |
| spool 文件名.log | 把显示内容输出到指定文件 |
| spool off | 关闭日志输出,否则日志内容不会写入文件 |
| desc 表名 | 查看表的结构 |
| col 列名 format a60 | 设置字符列的显示宽度 |
| col 列名 format 9999 | 设置数字列格式,解决显示 #### 的问题 |
| col 列名 heading 新标题 | 设置列标题 |
| set heading off | 去掉表头信息 |
| set heading on | 打开表头信息 |
| set linesize 200 | 设置行宽,容纳最大字符数 |
| set pagesize 200 | 设置每页最大显示内容 |
| set timing on/off | 显示 SQL 语句执行时间 |
| set time on/off | 显示系统时间 |
| show all | 显示当前环境变量 |
| show error | 显示最近操作的错误信息 |
| show parameter | 显示数据库的所有参数 |
| show parameter undo | 显示指定的 undo 参数 |
| show rel | 显示数据库版本信息 |
| show sga | 显示 SGA 大小 |
| show user | 显示当前用户名 |

相关推荐
云和数据.ChenGuang4 小时前
Django 应用安装脚本 – 如何将应用添加到 INSTALLED_APPS 设置中 原创
数据库·django·sqlite
woshilys5 小时前
sql server 查询对象的修改时间
运维·数据库·sqlserver
Hacker_LaoYi5 小时前
SQL注入的那些面试题总结
数据库·sql
建投数据6 小时前
建投数据与腾讯云数据库TDSQL完成产品兼容性互认证
数据库·腾讯云
Hacker_LaoYi7 小时前
【渗透技术总结】SQL手工注入总结
数据库·sql
岁月变迁呀7 小时前
Redis梳理
数据库·redis·缓存
独行soc7 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
数据库·sql·安全·web安全·漏洞挖掘·hw
你的微笑,乱了夏天7 小时前
linux centos 7 安装 mongodb7
数据库·mongodb
工业甲酰苯胺8 小时前
分布式系统架构:服务容错
数据库·架构
独行soc9 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘