SQL prompt for Oracle Database 12c Multitenant
Oracle 12c에 Oracle Multitenant라는 새로운 개념이 등장했습니다.
Database가 Container DB와 Pluggable DB로 나뉘어 Cloud 환경에 적합한 모양으로 구성 가능합니다.
자세한 내용은 아래 링크 참조하시면 될 것 같고..
http://www.oracle.com/technetwork/database/multitenant/overview/index.html
Oracle 12c Multitenant라는 기능을 보다 보니까 내가 현재 어떤 DB에 접속하고 있는지 헤깔리기 쉽겠더군요..
PDB (Pluggable DB)를 내리려다 잘못해 Container DB를 내리면 해당 Container DB에 있는 PDB까지 다 내려갈 수 있으니 (걱정도 팔자임), 이는 큰일이 아닐 수 없습니다. ㅋ
해서 SQLPLUS의 prompt에 현재 어떤 DB에 접속하고 있는지 표시하도록 간단히 맹글어 보았습니다.
모두 아시는 $ORACLE_HOME/sqlplus/admin/glogin.sql에 아래 내용을 넣으시면 됩니다.
define _editor=vi
column sqlprompt_col new_value sqlprompt_value
set termout off
define sqlprompt_value='NOT CONNECTED'
SELECT SYS_CONTEXT('USERENV','CURRENT_USER')||'('||SYS_CONTEXT('USERENV','CON_NAME')||')'
as sqlprompt_col
from dual;
set termout on
set sqlprompt '&sqlprompt_value >'
아래처럼 container DB에 접속하던 Pluggable DB에 접속하던 prompt 상에서 보여주게 됩니다.
그러나 DB 가 내려가 있는 상태에서 접속하면 'NOT CONNECTED'로 나오는 부분은 수정 필요 --;