oracle sqlplus login.sql設置

 sqlplus在啓動時會自動運行兩個腳本:glogin.sql、login.sql這兩個文件;

 執行順序爲

  1.默認在在$ORACLE_HOME/sqlplus/admin路徑下查找glogin.sql文件執行

  2.默認在在當前路徑下查找login.sql文件執行,若未查找到對應文件則執行3

  3.判斷是否設置SQLPATH環境變量,如果設置了該變量則在對應路徑下查找並執行,未找到則停止查找

可以在login.sql文件中加入一些常用設置使用SQLPLUS時更便捷。默認$ORACLE_HOME/sqlplus/admin路徑下存在glogin.sql文件;

[oracle@test admin]$ more glogin.sql
--
-- Copyright (c) 1988, 2011, Oracle and/or its affiliates.
-- 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
--

當前用戶的profile文件中設置SQLPATH環境變量 export SQLPATH=$ORACLE_HOME/sqlplus/admin:$SQLPATH

在默認路徑下加入我們自己的login.sql文件,以下配置爲常用配置:

--SQLPLUS默認編輯器設置爲vi
define _editor=vi
--默認打開DBMA_OUTPUT,這樣不必要每次在輸入這個命令,同時將默認緩衝池設置得儘可能大
set serveroutput on size 1000000
--假脫機輸出文本時,會去除文本行兩端的空格,而且行寬不定,如果設置爲off(默認設置),假脫機輸出的文本行寬度則等於所設置的linesize
set trimspool on
--設置選擇LONG和CLOB列時顯示的默認字節數
set long 5000
--設置顯示的文本寬爲200個字符
set linesize 200
--設置SQLPLUS多久打印一次標題,將此參數設置大些這樣每頁只顯示一次標題
set pagesize 9999
--設置AUTOTRACE得到解釋計劃輸出的默認寬度,一般80足夠放下整個計劃
column plan_plus_exp format a80
--設置SQLPLUS提示符,顯示格式爲用戶@數據庫名
column global_name new_value gname
set termout off
define gname=idle
column global_name new_value gname
select lower(user) ||'@'|| substr(global_name,1,decode(dot,0,length(global_name),dot-1)) global_name
from (select global_name,instr(global_name,'.') dot from global_name);
set sqlprompt '&gname>'
set termout on

查看oracle用戶當前的bash_profile文件如下:在默認路徑下(SQLPATH定義的路徑)加入我們自己的login.sql文件。

export ORACLE_BASE=/U01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4
export ORACLE_SID=test
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export TNS_ADMIN=/U01/app/oracle/product/11.2.0.4/network/admin/
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
export SQLPATH=/home/oracle/dbadmin/scripts/sql
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH
umask 022

login.sql文件的內容如下:

define _editor=vi
set serveroutput on size 1000000
set trimspool on
set long 5000
set linesize 100
set pagesize 9999
column plan_plus_exp format a80
column global_name new_value gname
set termout off
define gname=idle
column global_name new_value gname
select lower(user) || '@' || substr( global_name, 1,
decode( dot, 0, length(global_name), dot-1) ) global_name
from (select global_name, instr(global_name,'.') dot from global_name );
set sqlprompt '&gname> '
set termout on

設置好後,使用scott用戶登錄:

[oracle@test ~]$ sqlplus scott/oracle

SQL*Plus: Release 11.2.0.4.0 Production on Sun Mar 22 08:45:08 2020

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

scott@test>

可以看到登錄之後 SQLPLUS按照login.sql文件進行相應設置,會顯示此時登錄的用戶名和當前數據庫名。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章