[20161021]关于sqlplus sqlprompt设置.txt
--别人的服务器没有设置sqlprompt,随手设置一下,发现一些问题。
--从网上抄了下来:
SYS@test> set sqlprompt "_user@_connect_identifier>"
SYS@_connect_identifier>
--居然变成这样。再仔细看@ _connect_identifier之间存在一个空格。
SYS@_connect_identifier>set sqlprompt "_user@ _connect_identifier>"
SYS@ test>
--而很明显我的以前设置没有这个问题,看了我机器的配置,发现我
SET SQLPROMPT '&_USER.@&_CONNECT_IDENTIFIER.> '
--这里的 . 相当于连接符号。而仔细看还不止这些,上面没有使用&,实际上使用&我的理解替换变量。
--而不设置相当于每次都重新设置。
通过一个小例子来说明问题:
SET SQLPROMPT '&_USER.@&_CONNECT_IDENTIFIER &_DATE> '
SYS@test 2016-10-21 22:18:47> SET SQLPROMPT '&_USER.@&_CONNECT_IDENTIFIER &_DATE> '
SYS@test 2016-10-21 22:18:54>
SYS@test 2016-10-21 22:18:54>
SYS@test 2016-10-21 22:18:54> select sysdate from dual ;
SYSDATE
-------------------
2016-10-21 22:18:58
--你可以发现&_DATE仅仅在设置时读取1次,以后时间不会改变,就是设置的时间。
SET SQLPROMPT '&_USER.@&_CONNECT_IDENTIFIER _DATE> '
SYS@test_DATE> SET SQLPROMPT '&_USER.@&_CONNECT_IDENTIFIER _DATE> '
SYS@test 2016-10-21 22:20:31>
SYS@test 2016-10-21 22:20:34> select sysdate from dual ;
SYSDATE
-------------------
2016-10-21 22:20:36
--这样每次执行都会重新设置时间。