SQL *Plus設定login.sql登入設定

mengbing1990發表於2015-01-21
在使用SQL *Plus過程中,常用sqlplus 每次可能都要set pagesize \set linesize \set serveroutput很麻煩。為了方便起見,可以透過提供的login.sql方式,在login.sql中設定好自定義引數,每次開啟SQL *Plus的時候自動進行呼叫。而不用我們每次手動設定。

可以將login.sql檔案複製到oracle使用者的當前目錄下(home/oracle)或者設定SQLPATH環境變數,指向login.sql所在的目錄。

以後我們在使用別到別的引數時,可以自己手動在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

 

:login.sql檔案中部分引數說明:

1. define _editor=vi: 設定SQL *Plus使用的預設編輯器。

2. set serveroutput on size 1000000:這樣會預設的開啟DBMS_OUTPUT(這樣不必每次在鍵入這個命令了)。另外也將預設緩衝區大小設定的僅可能大。

3. set trimspool on: 假離線輸出文字時,會去除文字行兩端的空格,而且行寬不定,如果設定為off(預設設定),假離線輸出的文字行寬度則等於所設定的linesize。

4. set long 5000: 設定選擇LONG和CLOB列時顯示的預設位元組數。

5. set linesize 100 設定SQL*Plus顯示的文字寬為100個字元

6. set pagesize 9999: pagesize可以控制SQL *Plus多久列印一次標題。

7. column plan_plus_exp format a80: 設定由AUTOTRACE得到的解釋計劃輸出的預設寬度。

8.


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

column global_name new_value gname 指令告訴SQL *Plus取得global_name列中的最後一個值,並將這個值賦給替換變數gname,接下來從資料庫中選出global_name,並與我的登入 使用者名稱連線。得到的SQL *Plus提示符為:user_analysis@ORA9I>這樣就可以知道當前使用者是誰,以及連線的資料庫SID

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

相關文章