關於設定SQLPLUS提示符樣式的方法

leonarding發表於2012-03-28
摘要:大家在日常工作中,我想99%都會用到sqlplus工具來登陸你的資料庫,對資料庫進行管理、調優、配置、運維。那麼如果有n多臺資料庫的時候,我們在連線後全部是統一的SQL>提示符,就有可能發生目前不知道連線到哪個庫上,當我們切換使用者很頻繁的時候也有可能不清楚當前在使用的是哪個使用者,下面我就給大家介紹一下,如何配置sqlplus工具的登陸配置檔案,來動態載入我們提示符的樣子。
系統:RedHat Linux 5.4
資料庫:oracle 10G
工具:sqlplus

一、全域性模式
什麼叫全域性模式呢:當我們配置完sqlplus工具載入配置檔案後,無論在哪個目錄下登陸資料庫,您設定【sqlplus提示符樣子,在任何目錄下進入sqlplus工具都會載入此提示符樣子】的效果都可以呈現出來
1.glogin.sql 配置檔案的位置
答:$ORACLE_HOME/sqlplus/admin/glogin.sql
     vim $ORACLE_HOME/sqlplus/admin/glogin.sql
2.新增的字串,取預設變數
定位到這個檔案的最後一行,回車另起一行的開頭新增如下字串
set sqlprompt "_user'@'_connect_identifier> "
或者 set sqlprompt '_user@&_connect_identifier> '
含義:_user 代表當前登陸使用者名稱,_connect_identifier 代表當前資料庫連線串名,在glogin.sql中設定全域性sqlplus提示符樣子user和connect identifier是sqlplus的預設變數
注:此時設定的是在所有目錄下登陸sqlplus工具都會生效,@替換成【¥/#/&都可以】,從別的目錄進入sqlplus也載入提示符變數
3.儲存&退出
4.sqlplus / as sysdba
看現在的sqlplus提示符已經變化了,sys表示當前登入的是管理員使用者,mdsoss是我的資料庫連線串名,這樣的話我們就可以在登入若干個資料庫的時候不會發生混淆的情況了。
sys@mdsoss>

二、區域性模式
什麼叫區域性模式呢:只在當前目錄有效,例如我們在當前目錄下配置login.sql檔案,那麼就在當前目錄下進入sqlplus工具會載入login.sql檔案提示符會生效,其他目錄下登陸不生效
1.在當前目錄下建立login.sql檔案
例子 vim /home/oracle/login.sql
2.編輯login.sql檔案,新增一行字串
set sqlprompt "_user'@'_connect_identifier> "
或者 set sqlprompt '_user@&_connect_identifier> '
含義:_user 代表當前登陸使用者名稱,_connect_identifier 代表當前資料庫連線串名,在glogin.sql中設定全域性sqlplus提示符樣子user和connect identifier是sqlplus的預設變數
注:此時設定的是在當前目錄下登陸sqlplus工具提示符生效,@替換成【¥/#/&都可以】,從別的目錄進入sqlplus不載入提示符變數
3.儲存&退出
4.sqlplus / as sysdba
sys@mdsoss>
5.區域性生效測試版
如果我們在其他目錄下登入sqlplus,這是我們已經發現了不同點,恢復到原始狀態
sqlplus / as sysdba
SQL>

三、指定使用者名稱和例項名方法
1.編輯glogin.sql和login.sql檔案,在最後面新增如下內容
set term off
define user_name=""
define instance_name=""
column user_name new_value user_name
column instance_name new_value instance_name
select lower(user) user_name, instance_name instance_name from v$instance;
set sqlprompt '&user_name@&instance_name>'     
註釋:--user_name 代表當前登陸的使用者名稱,instance_name 代表當前登陸的例項名
sys@mdsoss> @可替換【¥/#/&都可以】
2.使用sqlplus登入資料庫
這種方式在登陸和切換使用者的時候,可指定使用者名稱和例項名
enter value for user: liusheng
enter value for instance_name:leonarding
liusheng@leonarding>
小結:使用上述方法可以讓我們在資料庫海洋裡遊刃有餘,平時練習的時候也可以加上,形成習慣,這樣在連線不同的資料庫時就不會導致不知道連線的是哪個庫了。

Leonarding 劉盛
2012.03.28
天津&spring
分享技術~成就夢想
Blog:

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

相關文章