vi $ORACLE_HOME/sqlplus/admin/glogin.sql to remove "Elapsed"
最近在写shell脚本的时候,发现了一个问题,之前没有注意过的问题,而这个问题又是恰恰导致我们带库不正常的原因。
1. 重现Elapsed: 00:00:00.05标识
SQL> conn ecc_view/ecc@devdb
Connected.
SQL> set heading off
SQL> set feedback off
SQL> select table_name from user_tables;
ECC_VIEW1
TEST
SM_OPER_LOG_BAK
SM_OPER_LOG
TABLE1
T
T3
Elapsed: 00:00:00.19
每次执行完sql语句的时候,最后一行总是带有一个Elapsed: 00:00:00.19时间统计信息,这个字段会影响我后续的shell脚本的执行。
比如说spool一个parfile,我只能在cat 出一个去掉Elapsed的脚本出来
e.g. cat /u01/oracle/parfile1.sql |grep -v Elapsed > /u01/oracle/parfile2.sql
2. 去掉sql语句执行后的时间统计信息
vi $ORACLE_HOME/sqlplus/admin/glogin.sql
[oracle@rac1 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'
-- User Vi
define_editor=vi
--set timing on
set timing off
set serveroutput on size 100000
set linesize 120
set pagesize 999
set trimspool on
set long 5000
set termout on
[oracle@rac1 admin]$
3. 再次执行select语句
[oracle@rac1 ~]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.4.0 - Production on Mon Aug 3 12:42:46 2009
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
SQL> conn ecc_view/ecc@devdb
Connected.
SQL> set heading off
SQL> set feedback off
SQL> select table_name from user_tables;
ECC_VIEW1
TEST
SM_OPER_LOG_BAK
SM_OPER_LOG
TABLE1
T
T3
说明:vi $ORACLE_HOME/sqlplus/admin/glogin.sql以后,注释set timing on ,执行时间提示符 Elapsed: 00:00:00.19就没有了。
相关命令解析如下:
--定义缓冲编辑器为vi
define_editor=vi
--使DBMS_OUTPUT有效,并设置成最大buffer,并防止"吃掉"最前面的空格
set serveroutput on size 1000000 format wrapped
--设置一行可以容纳的字符数
set linesize 256
--设置一页有多少行数
set pagesize 50
--设置来回数据显示量,这个值会影响autotrace时一致性读等数据
set arraysize 5000
--页和页之间不设任何间隔
set newpage none
--LONG或CLOB显示的长度
set long 5000
--将SPOOL输出中每行后面多余的空格去掉
set trimspool on
--设置查询耗时
set timing on
--autotrace后explain plan output的格式
col plan_plus_exp format a120
--在屏幕上暂不显示输出的内容,为下面的设置sql做准备
set termout off
e.g. 7 rows selected.
--设置时间格式
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
--获得用户名和global_name
col login_info_temp new_value login_info
select user||'@'||global_name login_info_temp from global_name;
--设置sql提示为"user@global_name"
set sqlprompt '&login_info SQL> '
--在屏幕上显示输出的内容
set termout on
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9252210/viewspace-611123/ ,如需转载,请注明出处,否则将追究法律责任。