[Oracle] SQL*Plusをいつも同じ設定で起動する | Archive Redo Blog

Archive Redo Blog

DBエンジニアのあれこれ備忘録

SQL*PlusではSETコマンドを使用して動作オプションの設定ができますが、これらのオプションはSQL*Plusを終了するとリセットされてしまいます。


かといって毎回毎回起動時にSET~、SET~とやっていては面倒です。


SQL*Plusを毎回同じ設定で起動させたい場合には、サイトプロファイル(glogin.sql)、またはユーザープロファイル(login.sql)を利用します。


サイトプロファイルはすべてのユーザーに影響を与えるプロファイル、ユーザープロファイルは特定のユーザーに影響を与えるプロファイルで、SQL*Plusはサイトプロファイル→ユーザープロファイルの順に読み込まれます。


が、実際にはサイトプロファイルを使うことの方が多いと思われるので、両者がどうこうという話は置いといて、ここではサイトプロファイルのみ説明します。

サイトプロファイルはWindows環境の場合、%ORACLE_HOME%\sqlplus\admin\glogin.sqlに配置します。


もっとも、わざわざ新規に作成しなくても最初から以下のような内容のglogin.sqlが置いてあるのですが...

glogin.sql

--
-- Copyright (c) Oracle Corporation 1988, 2000.  All Rights Reserved.
--
-- NAME
--   glogin.sql
--
-- DESCRIPTION
--   SQL*Plus global login startup file.
--
--   Add any sqlplus commands here that are to be executed when a user
--   starts SQL*Plus on your system
--
-- USAGE
--   This script is automatically run when SQL*Plus starts
--

-- For backward compatibility
SET PAGESIZE 14
SET SQLPLUSCOMPATIBILITY 8.1.7

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

-- 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 SET AUTOTRACE EXPLAIN report
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


なにやらごちゃごちゃと設定していますが、要は標準では上記の設定で動作しているということです。


で、これに設定を加えたり、変更したりすれば、いつも自分の使いやすい設定でSQL*Plusが起動してくれるようになるということなのです。


私の場合、デバッグやパフォーマンス計測をよく行うので、とりあえず上記のプロファイルに以下の設定を追加しています。


set serverout on
set timing on
本当はもう少し細かく設定しておいた方がいいかなと思うんですが、めんどくさくて^^ゞ