11g優化了sqlplus的glogin指令碼

yangtingkun發表於2010-11-19

介紹一下glogin.sql指令碼在11g中的改變。

 

 

Oracle 9i以以前版本,呼叫sqlplus命令後,會自動載入$ORACLE_HOME/sqlplus/admin/glogin.sql指令碼。

而在10g中,不僅是sqlplus命令,每次執行CONNECT命令,sqlplus工具都會自動呼叫這個指令碼來載入全域性配置。

因此使用者可以通過編輯這個指令碼來定製自己sqlplus的設定。

不過從11g開始,這個檔案中原有Oracle新增的內容已經不見了。

這是10gglogin.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
--

這個檔案中除了一些註釋外,已經沒有其他的內容了,但是11gOracle的一些設定並沒有消失:

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仍然可以實現使用者的自定義,但是個別時候這個設定會導致Oraclebug,比如metalink文件ID 880426.1描述的Bug 5510530,就是在glogin.sql人為新增set timing on導致的dbua/dbca錯誤。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-678556/,如需轉載,請註明出處,否則將追究法律責任。

相關文章