11g优化了sqlplus的glogin脚本
时间:2010-11-19 来源:yangtingkun
介绍一下glogin.sql脚本在11g中的改变。
在Oracle 9i以以前版本,调用sqlplus命令后,会自动加载$ORACLE_HOME/sqlplus/admin/glogin.sql脚本。
而在10g中,不仅是sqlplus命令,每次执行CONNECT命令,sqlplus工具都会自动调用这个脚本来加载全局配置。
因此用户可以通过编辑这个脚本来定制自己sqlplus的设置。
不过从11g开始,这个文件中原有Oracle添加的内容已经不见了。
这是10g的glogin.sql:
[oracle@bjtest admin]$ more glogin.sql
--
-- Copyright (c) 1988, 2004, Oracle Corporation. All Rights Reserved.
--
-- 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
--
-- Used by Trusted Oracle
COLUMN ROWLABEL FORMAT A15
-- Used for the SHOW ERRORS command
COLUMN LINE/COL FORMAT A8
COLUMN ERROR FORMAT A65 WORD_WRAPPED
-- Used for the SHOW SGA command
COLUMN name_col_plus_show_sga FORMAT a24
COLUMN units_col_plus_show_sga FORMAT a15
-- Defaults for SHOW PARAMETERS
COLUMN name_col_plus_show_param FORMAT a36 HEADING NAME
COLUMN value_col_plus_show_param FORMAT a30 HEADING VALUE
-- Defaults for SHOW RECYCLEBIN
COLUMN origname_plus_show_recyc FORMAT a16 HEADING 'ORIGINAL NAME'
COLUMN objectname_plus_show_recyc FORMAT a30 HEADING 'RECYCLEBIN NAME'
COLUMN objtype_plus_show_recyc FORMAT a12 HEADING 'OBJECT TYPE'
COLUMN droptime_plus_show_recyc FORMAT a19 HEADING 'DROP TIME'
-- Defaults for SET AUTOTRACE EXPLAIN report
-- These column definitions are only used when SQL*Plus
-- is connected to Oracle 9.2 or earlier.
COLUMN id_plus_exp FORMAT 990 HEADING i
COLUMN parent_id_plus_exp FORMAT 990 HEADING p
COLUMN plan_plus_exp FORMAT a60
COLUMN object_node_plus_exp FORMAT a8
COLUMN other_tag_plus_exp FORMAT a29
COLUMN other_plus_exp FORMAT a44
-- Default for XQUERY
COLUMN result_plus_xquery HEADING 'Result Sequence'
[oracle@bjtest admin]$ pwd
/data/oracle/product/10.2/sqlplus/admin
而11g中这个脚本变为:
[oracle@bjtest admin]$ more glogin.sql
--
-- Copyright (c) 1988, 2005, Oracle. All Rights Reserved.
--
-- 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
--
这个文件中除了一些注释外,已经没有其他的内容了,但是11g中Oracle的一些设置并没有消失:
SQL> select * from v$version;
BANNER
------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
SQL> col
COLUMN NAME_COL_PLUS_SHOW_EDITION ON
HEADING 'EDITION'
FORMAT a30
word_wrap
COLUMN result_plus_xquery ON
HEADING 'Result Sequence'
COLUMN other_plus_exp ON
FORMAT a44
COLUMN other_tag_plus_exp ON
FORMAT a29
COLUMN object_node_plus_exp ON
FORMAT a8
COLUMN plan_plus_exp ON
FORMAT a60
COLUMN parent_id_plus_exp ON
HEADING 'p'
FORMAT 990
COLUMN id_plus_exp ON
HEADING 'i'
FORMAT 990
COLUMN droptime_plus_show_recyc ON
HEADING 'DROP TIME'
FORMAT a19
COLUMN objtype_plus_show_recyc ON
HEADING 'OBJECT TYPE'
FORMAT a12
COLUMN objectname_plus_show_recyc ON
HEADING 'RECYCLEBIN NAME'
FORMAT a30
COLUMN origname_plus_show_recyc ON
HEADING 'ORIGINAL NAME'
FORMAT a16
COLUMN SID_COL_PLUS_SHOW_SPPARAM ON
HEADING 'SID'
FORMAT a8
word_wrap
COLUMN VALUE_COL_PLUS_SHOW_SPPARAM ON
HEADING 'VALUE'
FORMAT a28
word_wrap
COLUMN NAME_COL_PLUS_SHOW_SPPARAM ON
HEADING 'NAME'
FORMAT a29
word_wrap
COLUMN value_col_plus_show_param ON
HEADING 'VALUE'
FORMAT a30
COLUMN name_col_plus_show_param ON
HEADING 'NAME'
FORMAT a36
COLUMN units_col_plus_show_sga ON
FORMAT a15
COLUMN name_col_plus_show_sga ON
FORMAT a24
COLUMN ERROR ON
FORMAT A65
word_wrap
COLUMN LINE/COL ON
FORMAT A8
COLUMN ROWLABEL ON
FORMAT A15
事实上,Oracle还增加了NAME_COL_PLUS_SHOW_EDITION列设置。
在11g中,sqlplus将这部分格式化的内容优化到安装时刻,因此不在需要通过调用glogin.sql还实现这个功能了。
虽然通过修改glogin.sql仍然可以实现用户的自定义,但是个别时候这个设置会导致Oracle的bug,比如metalink文档ID 880426.1描述的Bug 5510530,就是在glogin.sql人为添加set timing on导致的dbua/dbca错误。










