glogin.sql :
无论何时sql*plus 开始的时候,总是先找到/%oracle_home%/sqlplus/admin目录下的glogin.sql 文件,如果这个文件找到了,就开始读取并继续执行,这个文件中存储了一些设置文件,如linesize。
读完glogin.sql这个文件之后,oracle还会查找login.sql这个文件,这是10G以及以上版本新添加的,9i中不存在,这个文件通常被放置在SQL*PLUS 和 环境变量SQLPATH 指向的目录,然后读并执行它;
oracle会先从当前目录下查找是否包含这个文件,如果包含则停止查找并读取,不包含则查找%sqlpath%目录下是否包含,如果还没有则停止查找,所以如果你是从类似C:/Documents and Settings/Administrator>这个目录下进入cmd,并打开sqlplus的话,你会发现被你放置在%oracle_home%/sqlplus/admin/下的login.sql并没有起作用,此时你应该在系统中添加SQLPATH环境变量,指向这个admin目录,
例如
SQLPATH
%ORACLE_HOME%/sqlplus/admin
OK,重新打开一个新的cmd再次从C:/Documents and Settings/Administrator>启动sqlplus,你就会发现login.sql起作用了
设置login.sql 的优先级要比设置glogin.sql 的高, 如果 restriction level 是设置的3 ,那么这个
设置举例:
--将UE设置为默认编辑器
define _editor="C:Program FilesUltraEditUedit32.exe"
--默认在打开dbms_output,同时也将默认缓冲区大小设置得尽可能大
set serveroutput on size 1000000
--假脱机输入文本时,会去除文本行两端的空格,而且行宽不定。
--如果设置为OFF(默认设置),假脱机输入的文本行宽则等于所设置的linesize
set trimspool on
--设置选择LONG、COLB列时显示的默认字节数
set long 5000
--设置sql*plus显示的文本行宽为100个字符
set linesize 100
--pagesize可以控制sql*plus多久打印一次标题
set pagesize 9999
--设置由autotrace得到的解释计划输出(explain plan output)的默认宽度。a80通常足以放下整个计划。
column plan_plus_exp format a80
column golbal_name new_value gname
set termout off
define gname=idle
--告诉sql*plus取得global_name列中的最后一个值,并将这个值赋给替换变量gname。
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);
--设置sql*plus提示符
set sqlprompt '&gname> '
set termout on