[20161021]關於sqlplus sqlprompt設定.txt

lfree發表於2016-10-23

[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

--這樣每次執行都會重新設定時間。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2126950/,如需轉載,請註明出處,否則將追究法律責任。

相關文章