正常登陆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,) >
这样一来想显示任何东西都不成问题了,是不是很有意思!