Oracle

게시글 보기
작성자 유건데이타 등록일 2015-06-22
제목 SQL PROMPT을 CONNECT하는 USERID 또는 DBNAME으로 DYNAMIC하게 바꾸기
====================================================================
SQL PROMPT을 CONNECT하는 USERID 또는 DBNAME으로 DYNAMIC하게 바꾸기
====================================================================

PURPOSE
---------

SQL*Plus으로 접속시에 나타나는 SQL> 라는 prompt을 다른 것으로 바꾸고자
할 경우에 사용 가능한 방법이다.

Explanation
-------------

SQL*Plus으로 접속시에 나타나는 SQL> 라는 prompt을 다른 것으로 바꾸고자
할 때 우린 간단하게 set sqlprompt 'text문자열' 로 나타낸다.
그러면 접속 시에 username을 SQL*Plus prompt dynamic하게 대신할 수 있을까?
아래에 그 해답을 제시한다.

Example
---------

예제 1) SQL*Plus prompt을 접속하는 userid에 따라 바꾸기

$ORACLE_HONE/sqlplus/admin/glogin.sql의 마지막 부분에 아래와 같이
첨부한다.

column DUMMY new_value VAR
set term off
select user DUMMY from sys.dual;
set sqlprompt '&&VAR> '
set term on

$sqlplus scott/tiger

SCOTT>


예제 2) SQL*Plus prompt을 접속하는 Databse name으로 바꾸기

$ORACLE_HONE/sqlplus/admin/glogin.sql의 마지막 부분에 아래와 같이
첨부한다.

column DUMMY new_value VAR
set term off
select value DUMMY from v$parameter where name ='db_name';
-- select global_name DUMMY from global_name;
-- 보통은 global_name이 db name과 같기 때문에 이와 같은 query도 무방할 둣.
set sqlprompt '&&VAR> '
set term on

$sqlplus scott/tiger

RC815>

주의 : 위의 접속시에 ORA-0942 error가 발생하면 SYS.V_$PARAMETER에 대한
public synonym인 v$parameter가 안 만들어진 경우이므로 v$parameter
대신에 SYS.V_$PARAMETER을 이용하시면 됩니다.

select value DUMMY from SYS.V_$PARAMETER where name ='db_name';
Comment
등록된 코멘트가 없습니다.