Setting SQL prompt in Oracle
TEXT can be
predefined substitution variables which are prefixed with an underscore.
_connect_identifier
|
will
display connection identifier.
|
_date
|
will
display date.
|
_editor
|
will
display editor name used by the EDIT command.
|
_o_version
|
will
display Oracle version.
|
_o_release
|
will
display Oracle release.
|
_privilege
|
will
display privilege such as SYSDBA, SYSOPER, SYSASM
|
_sqlplus_release
|
will
display SQL*PLUS release.
|
_user
|
will
display current user name.
|
The variable _CONNECT_IDENTIFIER was introduced in SQL*Plus 9.2 and _DATE, _PRIVILEGE and _USER were introduced in SQL*Plus 10.1.
_USER
The variable _USER contains the current user name given by SHOW USER. If SQL*Plus is not connected, the variable is defined as an empty string.
SQL> set sqlprompt "_user>"
The SQL*Plus prompt will shows
SYSTEM>
SATYA>
_PRIVILEGE
When SQL*Plus is connected as a privileged user the variable _PRIVILEGE contains the connection privilege "AS SYSBDA" or "AS SYSOPER" or "AS SYSASM". If SQL*Plus is connected as a normal user the variable is defined as an empty string.
SQL> set sqlprompt "_user _privilege>"
The SQL*Plus prompt will shows
SYS AS SYSDBA>
SATYA AS SYSOPER>
ASMADM AS SYSASM>
_CONNECT_IDENTIFIER
The variable _CONNECT_IDENTIFIER contains the connection identifier used to start SQL*Plus. For example, if the SQL*Plus connection string is "hr/my_password@MYSID" then the variable contains MYSID. If you use a complete Oracle Net connection string like "hr/my_password@(DESCRIPTION=(ADDRESS_LIST=...(SERVICE_NAME=MYSID.MYDOMAIN)))" then _CONNECT_IDENTIFIER will be set to MYSID. If the connect identifier is not explicitly specified then _CONNECT_IDENTIFIER contains the default connect identifier Oracle uses for connection. For example, on UNIX it will contain the value in the environment variable ORACLE_SID or TWO_TASK. If SQL*Plus is not connected then the variable is defined as an empty string.
SQL> set sqlprompt "&_user@&_connect_identifier>"
or
SQL> set sqlprompt "_user'@'_connect_identifier>"
The SQL*Plus prompt will shows
SYS@PROD>
SYSTEM@DWH>
_DATE
The variable _DATE can be either dynamic, showing the current date or it can be set to a fixed string. The date is formatted using the value of NLS_DATE_FORMAT and will show time information. By default a DEFINE or dereference using &_DATE will give the date at the time of use. _DATE can be UNDEFINED, or set to a fixed string with an explicit DEFINE command. Dynamic date behavior is re-enabled by defining _DATE to an empty string.If we want to display current date:
SQL> set sqlprompt "_user _privilege 'on' _date>"
SYS AS SYSDBA on 9-AUG-10>
If we want to display the current date & time:
SATYA on 9-AUG-10 at DEVDB> alter session set nls_date_format = 'mm/dd/yyyy hh24:mi:ss';
SATYA on 08/09/2010 13:03:51 at DEVDB>
_EDITOR
The variable _EDITOR contains the external text editor executable name.
set sqlprompt _editor>
The SQL*Plus prompt will shows
vi>
_O_VERSION
The variable _O_VERSION contains a text string showing the database version and available options.
set sqlprompt _o_version>
The SQL*Plus prompt will shows
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production With the Partitioning, Data Mining and Real Application Testing options>
_O_RELEASE
The variable _O_RELEASE contains a string representation of the Oracle database version number. If Oracle database version is 11.1.0.7.0 then the variable contains "1101000700". The Oracle version may be different from the SQL*Plus version if you use Oracle Net to connect to a remote database.
set sqlprompt _o_release>
The SQL*Plus prompt will shows (for 10.2.0.4.0)
1002000400>
_SQLPLUS_RELEASE
The variable _SQLPLUS_RELEASE contains the SQL*Plus version number in a similar format to _O_RELEASE.
set sqlprompt _sqlplus_release>
The SQL*Plus prompt will shows (for 10.2.0.4.0)
1002000400>
SQL> set sqlprompt "_user'@'_connect_identifier:SQL> "
SCOTT@DEVDB:SQL> connect system/manager
SYSTEM@DEVDB:SQL> disconnect
@:SQL> connect OEM/OEM@oemdb
OEM@OEMDB:SQL>
To reset to the default SQL prompt,
SQL> set sqlprompt 'SQL>'
Source: Internet
No comments:
Post a Comment