当DBA在维护Oracle系统时,经常按照自己的喜好来工作。比如,将屏幕的行宽设置为200个字符(set line 200),屏幕显示行设置为60行(set pagesize 60)等,当自己使用SQL*Plus进入Oracle后,原来设置的环境变量自动生效。

✿ 问题的提出

虽然Oracle系统提供SET命令用于设置各项变量的数值,但在默认情况下,只要结束本次会话(退出SQL*Plus环境),在会话中设置的各项变量值就会自动失效。那么,如何将自己需要的环境变量保存在Oracle系统内,以便下次登录到Oracle实例后,这些环境变量自动生效呢?

✿ 实现技术

每次登录Oracle系统后,Oracle系统会自动执行文件glogin.sql,可将一些环境变量(如linesize)的设置命令或者其他命令放入该文件中。

✿ 实现步骤

先在OS提示下,比如在Windows下对c:\app...\sqlplus\admin\glogin.sql文件进行编辑,步骤为:

--
--1.找到相应目录:
C:\app\zhao\product\11.2.0\dbhome_1\sqlplus\admin>dir
 驱动器 C 中的卷是本地磁盘
 卷的序列号是7410-DEBF

 C:\app\zhao\product\11.2.0\dbhome_1\sqlplus\admin 的目录

2010-07-14  15:04    <DIR>          .
2010-07-14  15:04    <DIR>          ..
2006-01-12  23:36               342 glogin.sql
2010-07-14  15:04    <DIR>          help
2006-03-07  03:24               813 plustrce.sql
2003-02-16  22:47             2,118 pupbld.sql

               3 个文件          3,273 字节
--2.编辑 glogin.sql 文件,如:
---- NAME
--   glogin.sql
--
-- DESCRIPTION
--   SQL*Plus global login "site profile" file
--
--   Add any SQL*Plus commands here that are to be executed when a
--   user starts SQL*Plus, or uses the SQL*Plus CONNECT command.
--
-- USAGE
--   This script is automatically run
--
SET SQLPROMPT '_USER SQL> '
set linesize 200
set pagesize 60
--3.使用SQL*Plus 登录,能看到设置变量生效,如:
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有1985-2001 Microsoft Corp.

C:\Documents and Settings\zhao>cd\

C:\>sqlplus system/Zhaoyuan123

连接到:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing
options

SYSTEM SQL> show line
linesize 200
SYSTEM SQL>

✿ 说明

当完成对glogin.sql文件的编辑设置后,以后凡是登录到Oracle系统,都会按照这样的环境变量进行设置,建议在设置变量时考虑大多数人员的需要。