首页 > 代码库 > 2014.5.2 oracle set sqlprompt 提示
2014.5.2 oracle set sqlprompt 提示
常用环境设置命令
1.改变data输出形式
set linesize 150 pagesize 100
select * from emp;
2.显示/关闭 当前时间
set time on/off
3.set sqlprompt "session&get:"
4. 设置sqlplus登录的username和instance
SQL> set sqlprompt ‘_user @&_CONNECT_IDENTIFIER> ‘
SYS @demo >
5. 打开/关闭sql语句返回的记录条数
set feedback on/off
6. 打开/关闭sql语句运行时间统计
set timing on/off
7.db_name instance_name
sqlplus启动时会查找和加载的两个文件login.sql和glogin.sql。
其中glogin.sql文件默认存放在$ORACLE_HOME/sqlplus/admin目录下,login.sql可以设置在SQLPATH中。
一、login.sql文件
login.sql文件可以存放sqlplus中能使用的任何命令,包括sqlplus命令和sql语句。
sqlplus启动时会首先查找当前目录下的login.sql文件,其次会在SQLPATH目录下查找。
如果找到login.sql文件,则在SQLPLUS显示"SQL>”前执行login.sql里的所有内容。
如果没找到login.sql文件,则停止查找。
所以可将个人喜欢的常用设置放在login.sql文件中,每次sqlplus启动时会自动加载。
设置SQLPATH
在ORACLE用户profile文件中加入SQLPATH环境变量。我的是.bash_profile
如:export SQLPATH=/data/app/sqlpath(此路径是你login.sql所在的目录)
当然也可启动sqlplus后,再执行该文件(使用@命令)。
二、glogin.sql
文件glogin.sql是ORACLE为所有的数据库用户建立默认的SQLPLUS设置,默认存放在$ORACLE_HOME/sqlplus/admin目录下。
sqlplus启动时也会在出现"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
提示
我当前是以哪个用户登录的?当前身份是什么?在长时间使用9i的sqlplus后,很多DBA会犯这种“迷糊”。你需要通过查询语句来解决这些迷惑。在10g的sqlplus中,你可以通过设置在SQL>提示标识中增加这些信息了:
SQL> sets qlprompt"_user _privilege> "
通过以上设置,你的sqlplus提示标识就成了以下格式了:
SYS AS SYSDBA>
这就表明当前的登录帐号是SYS,身份是SYSDBA。请注意在上面语句中使用了两个特殊的预定义道德变量:_user和_privilege,分别定义了当前用户和这个用户的登录
身份(权限)。现在我们再增加一些其他内容。比如我除了想知道以上信息外,还想知道当前的登录时间:
SQL> sets qlprompt "_user _privilege on _date>"
SYS AS SYSDBA on 31-8月-05>
再增加一个连接信息看,这样就可以指出你登录的是哪个服务器的:
SQL>set sqlprompt "_user on _date at _connect_identifier>"
SYS on 31-8月-05 atteng>
但是前面的当前时间信息只有日期,如果需要精确到当前的确切时间呢:
SYS on 31-8月-05 atteng>alter session setnls_date_format=‘yyyy-mm-ddhh24:mi:ss‘;
会话已更改。
SYS on 2005-08-31 16:20:15 atteng>
你只要将上面的内容存在$ORACLE_HOME/sqlplus/glogin.sql中,那每次登录的提示信息都是你所需要的了。