自学内容网 自学内容网

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
  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

显示当前用户名


原文地址:https://blog.csdn.net/weixin_60783132/article/details/143867397

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!