Oracle SQL plus设置篇

发布于:2024-11-23 ⋅ 阅读:(118) ⋅ 点赞:(0)

安装完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
  1. 编译源码:
make
  1. 安装工具(需要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

显示当前用户名


网站公告

今日签到

点亮在社区的每一天
去签到