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/[email protected]: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 | 显示当前用户名 |

相关推荐
uwvwko19 分钟前
BUUCTF——web刷题第一页题解
android·前端·数据库·php·web·ctf
扶尔魔ocy33 分钟前
【Linux C/C++开发】轻量级关系型数据库SQLite开发(包含性能测试代码)
linux·数据库·c++·sqlite
旋风菠萝1 小时前
项目复习(1)
java·数据库·八股·八股文·复习·项目、
w23617346011 小时前
Django框架漏洞深度剖析:从漏洞原理到企业级防御实战指南——为什么你的Django项目总被黑客盯上?
数据库·django·sqlite
2302_809798321 小时前
【JavaWeb】MySQL
数据库·mysql
drowingcoder1 小时前
MySQL相关
数据库
Musennn2 小时前
MySQL刷题相关简单语法集合
数据库·mysql
Think Spatial 空间思维3 小时前
【HTTPS基础概念与原理】TLS握手过程详解
数据库·网络协议·https
laowangpython3 小时前
MySQL基础面试通关秘籍(附高频考点解析)
数据库·mysql·其他·面试
mooyuan天天4 小时前
SQL注入报错“Illegal mix of collations for operation ‘UNION‘”解决办法
数据库·web安全·sql注入·dvwa靶场·sql报错