glogin.sql 和 login.sql

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

时间: 2024-10-04 13:58:09

glogin.sql 和 login.sql的相关文章

glogin.sql和login.sql简介

使用sqlplus时,我们可以通过两个profile来设置sqlplus的默认行为:glogin.sql和login.sql. glogin.sql称为GLOBAL SITE PROFILE,位于$ORACLE_HOME/sqlplus /admin目录下,login.sql称为USER PROFILE,位于用户的当前路径,或者SQLPATH环境变量指定的路径下. 当用户启动sqlplus或者在sqlplus下执行conn命令时,sqlplus首先会调用glogin.sql文件,然后在当前路径下

Oracle SqlPlus设置Login.sql的技巧_oracle

sqlplus在启动时会自动运行两个脚本:glogin.sql.login.sql这两个文件 执行顺序为 1.默认在在$ORACLE_HOME/sqlplus/admin路径下查找glogin.sql文件执行 2.默认在在当前路径下查找login.sql文件执行,若未查找到对应文件则执行3 3.判断是否设置SQLPATH环境变量,如果设置了该变量则在对应路径下查找并执行,未找到则停止查找 可以在login.sql文件中加入一些常用设置使用SQLPLUS时更便捷,以下试验在ORACLE 11.2.

[20140221]login.sql与系统安全.txt

[20140221]login.sql与系统安全.txt --昨天帮别人解决问题,因为显示的问题我需要调整linesize的设置.我发现我的改动不生效. --仔细检查才发现在本地目录有一个login.sql. --因为机器是别人的,我突然想到login.sql引起的安全问题. --如果我在login.sql包含如下内容结果如下呢? set feedback off set termout off create user test1 identified by test1; grant dba t

Display SQL Server Login Mode_javascript技巧

Display SQL Server Login Mode. Supported Platforms SQL Server 2000  Yes Script Code SQLDMOSecurity_Integrated  = 1  SQLDMOSecurity_Mixed         = 2  SQLDMOSecurity_Normal       = 0 SQLDMOSecurity_Unknown   = 9  strDBServerName = "." Set objSQLS

SQL Server审计功能入门:SQL Server审核 (SQL Server Audit)

原文:SQL Server审计功能入门:SQL Server审核 (SQL Server Audit) 介绍     Audit是SQL Server 2008之后才有的功能,它能告诉你"谁什么时候做了什么事情".具体是指审核SQL Server 数据库引擎实例或单独的数据库涉及到跟踪和记录数据库引擎中发生的事件.它的底层是基于扩展事件(Extented Event),所以其性能和灵活性相对较好.审核数据可以输出到审核文件.Windows安全日志和应用程序日志.     Audit都需

Oracle SQL和PL/SQL多表插入技巧

假如一个在线电子商务系统,我们现在需要根据订单表体现的消费金额将客户简单分为大中小三类并分别插入到三张表中. 订单表 order (order_id number, cust_id number, amount number); 小客户表 small_cust (cust_id number, tot_amt number); 中客户表 med_cust (cust_id number, tot_amt number); 大客户表 big_cust (cust_id number, tot_am

在ASP.NET中显示Linq To SQL输出的SQL语句

最近在使用Linq To SQL的时候,为了了解不同Linq语句对性能造成的不同影响,需要获得Linq To SQL生成的SQL语句. 如果是在桌面程序中,只需要 _context.Log = Console.Out; 即可在控制台输出SQL语句.可是在ASP.NET中又该怎么办呢? 这时我想起了StringWriter.用它就可以代替Console.Out帮我们接收输出的日志,保存在一个StringBuilder里. 于是构造一个辅助类: using System; using System.

SQL Server 常用SQL总结

  SQL Server 常用SQL总结 order by NAME collate Chinese_PRC_Stroke_CS_AS_KS_WS /*sqlserver分组不能以text,ntext,image类型的字段作为分组依据*/ --强制查询使用索引: select id from table_name with(index(索引名)) where num=@num --全文检索(name like '%abc%')(substring(cal_name ,1,3)='abc') se

SQL点滴31—SQL语句中@@IDENTITY和@@ROWCOUNT区别

原文:SQL点滴31-SQL语句中@@IDENTITY和@@ROWCOUNT区别  SQL语句中@@IDENTITY和@@ROWCOUNT区别 在一条 INSERT.SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含语句生成的最后一个标识值. 如果语句未影响任何包含标识列的表,则 @@IDENTITY 返回 NULL. 如果插入了多个行,生成了多个标识值,则 @@IDENTITY 将返回最后生成的标识值. 如果语句触发了一个或多个触发器,该触发器又执行了生成标识值的插入