更改Sql*plus的提示符

正常登陆sql*plus的步骤如下:

sbdatabase*orcl-/home/oracle>sqlplus /nolog

SQL*Plus: Release 10.2.0.3.0 - Production on Sun May 9 19:50:24 2010

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

SQL> conn hmsimis/test@orcl
Connected.

可以看到前面的提示符是SQL,现在想修改提示的内容,该怎么办?在oracle10g中已经为我们提供了几个预先定义的变量可以让我们用来显示,比如下面这样:

SQL> define
DEFINE _DATE           = "09-MAY-10" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "orcl" (CHAR)
DEFINE _USER           = "HMSIMIS" (CHAR)
DEFINE _PRIVILEGE      = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1002000300" (CHAR)
DEFINE _EDITOR         = "vi" (CHAR)
DEFINE _O_VERSION      = "Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options" (CHAR)
DEFINE _O_RELEASE      = "1002000300" (CHAR)
SQL>

通过set sqlprompt 命令,可以修改现实的内容, 比如像下面这样:

SQL> set sqlprompt '_USER _DATE > '
HMSIMIS 09-MAY-10 >

这里使用了两个oracle已经定义的变量来定义显示的内容,可以看到目的已经到,如果oracle找不到在defined中定义的则原样输出,比如“>”原样输出了。

如果我们想显示的内容在以上define中没有定义怎么办?还是有办法的,通过构造我们的信息让其显示,比如下面这样:

HMSIMIS 09-MAY-10 > column session_info new_value sql_prompt 
HMSIMIS 09-MAY-10 > select '('||SID||','||serial#||','||')' session_info  from v$session where username='HMSIMIS' and status='ACTIVE';
SESSION_INFO
------------------------------------------------------------------------------------
(957,6312,)
HMSIMIS 09-MAY-10 > set sqlprompt 'sql_prompt >';
(957,6312,) >

这样一来想显示任何东西都不成问题了,是不是很有意思!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值