sqlplus 현재 연결된 데이터베이스 세션의 세부 정보를 찾는 방법
저는 아주 최근에 오라클 데이터베이스 작업을 시작했습니다.일반적으로 여러 오라클 데이터베이스에 대해 열려 있는 sqlplus 창이 많습니다.한 sqlplus 세션에서 다른 sqlplus 세션으로 전환할 때 각 sqlplus 세션에 대한 현재 세션 세부 정보를 보려면 어떻게 해야 합니까?어떤 도움이든 대단히 감사합니다!
show user
연결된 사용자를 얻기 위해
select instance_name from v$instance
sqlplus에서 인스턴스를 가져오거나 설정합니다.
set sqlprompt "_USER'@'_CONNECT_IDENTIFIER> "
저는 이것이 오래된 질문이라는 것을 알지만 위의 모든 답변을 시도했지만 저의 경우에는 작동하지 않았습니다.궁극적으로 도움이 된 것은
SHOW PARAMETER instance_name
select sys_context('USERENV','INSTANCE_NAME') from dual;
&
select instance_name from v$instance;
인스턴스 이름을 제공합니다.사용할 수도 있습니다.select * from global_name;
인스턴스의 전역 이름을 봅니다.
이것 좀 보세요.glogin.sql에서 실행할 수 있습니다. 따라서 이러한 설정은 연결할 때마다 업데이트되거나 수동으로 실행됩니다.공지host title
명령 - 세션 정보가 포함된 sql*plus 콘솔 창 제목을 변경합니다. 동시에 많은 창을 열 때 매우 유용합니다.
-- the Who am I script
def mysid="NA"
def _i_spid="NA"
def _i_cpid="NA"
def _i_opid="NA"
def _i_serial="NA"
def _i_inst="NA"
def _i_host="NA"
def _i_user="&_user"
def _i_conn="&_connect_identifier"
col i_username head USERNAME for a20
col i_sid head SID for a5 new_value mysid
col i_serial head SERIAL# for a8 new_value _i_serial
col i_cpid head CPID for a15 new_value _i_cpid
col i_spid head SPID for a15 new_value _i_spid
col i_opid head OPID for a5 new_value _i_opid
col i_host_name head HOST_NAME for a25 new_value _i_host
col i_instance_name head INST_NAME for a12 new_value _i_inst
col i_ver head VERSION for a10
col i_startup_day head STARTED for a8
col _i_user noprint new_value _i_user
col _i_conn noprint new_value _i_conn
col i_myoraver noprint new_value myoraver
select
s.username i_username,
i.instance_name i_instance_name,
i.host_name i_host_name,
to_char(s.sid) i_sid,
to_char(s.serial#) i_serial,
(select substr(banner, instr(banner, 'Release ')+8,10) from v$version where rownum = 1) i_ver,
(select substr(substr(banner, instr(banner, 'Release ')+8),
1,
instr(substr(banner, instr(banner, 'Release ')+8),'.')-1)
from v$version
where rownum = 1) i_myoraver,
to_char(startup_time, 'YYYYMMDD') i_startup_day,
p.spid i_spid,
trim(to_char(p.pid)) i_opid,
s.process i_cpid,
s.saddr saddr,
p.addr paddr,
lower(s.username) "_i_user",
upper('&_connect_identifier') "_i_conn"
from
v$session s,
v$instance i,
v$process p
where
s.paddr = p.addr
and
sid = (select sid from v$mystat where rownum = 1);
-- Windows CMD.exe specific stuff
-- host title %CP% &_i_user@&_i_conn [sid=&mysid ser#=&_i_serial spid=&_i_spid inst=&_i_inst host=&_i_host cpid=&_i_cpid opid=&_i_opid]
host title %CP% &_i_user@&_i_conn [sid=&mysid #=&_i_serial]
-- host doskey /exename=sqlplus.exe desc=set lines 80 sqlprompt ""$Tdescribe $*$Tset lines 299 sqlprompt "SQL> "
-- short xterm title
-- host echo -ne "\033]0;&_i_user@&_i_inst &mysid[&_i_spid]\007"
-- long xterm title
--host echo -ne "\033]0;host=&_i_host inst=&_i_inst sid=&mysid ser#=&_i_serial spid=&_i_spid cpid=&_i_cpid opid=&_i_opid\007"
def myopid=&_i_opid
def myspid=&_i_spid
def mycpid=&_i_cpid
-- undef _i_spid _i_inst _i_host _i_user _i_conn _i_cpid
샘플 출력:
17:39:35 SYSTEM@saz-dev> @sandbox
Connected.
18:29:02 SYSTEM@sandbox> @me
USERNAME INST_NAME HOST_NAME SID SERIAL# VERSION STARTED SPID OPID CPID SADDR PADDR
-------------------- ------------ ------------------------- ----- -------- ---------- -------- --------------- ----- --------------- -------- --------
SYSTEM xe OARS-SANDBOX 34 175 11.2.0.2.0 20130318 3348 30 6108:7776 6F549590 6FF51020
1 row selected.
Elapsed: 00:00:00.04
시도:
select * from v$session where sid = SYS_CONTEXT('USERENV','SID');
또한 이 AskTom 게시물에 관심이 있을 수 있습니다.
의견을 확인한 후 다음 작업을 수행할 수 있습니다.
SELECT * FROM global_name;
select * from v$session
where sid = to_number(substr(dbms_session.unique_session_id,1,4),'XXXX')
아래 쿼리에서 세션의 세부 정보와 상태를 확인할 수 있습니다.
select ' Sid, Serial#, Aud sid : '|| s.sid||' , '||s.serial#||' , '||
s.audsid||chr(10)|| ' DB User / OS User : '||s.username||
' / '||s.osuser||chr(10)|| ' Machine - Terminal : '||
s.machine||' - '|| s.terminal||chr(10)||
' OS Process Ids : '||
s.process||' (Client) '||p.spid||' (Server)'|| chr(10)||
' Client Program Name : '||s.program "Session Info"
from v$process p,v$session s
where p.addr = s.paddr
and s.sid = nvl('&SID',s.sid)
and nvl(s.terminal,' ') = nvl('&Terminal',nvl(s.terminal,' '))
and s.process = nvl('&Process',s.process)
and p.spid = nvl('&spid',p.spid)
and s.username = nvl('&username',s.username)
and nvl(s.osuser,' ') = nvl('&OSUser',nvl(s.osuser,' '))
and nvl(s.machine,' ') = nvl('&machine',nvl(s.machine,' '))
and nvl('&SID',nvl('&TERMINAL',nvl('&PROCESS',nvl('&SPID',nvl('&USERNAME',
nvl('&OSUSER',nvl('&MACHINE','NO VALUES'))))))) <> 'NO VALUES'
/
자세한 내용은 https://ora-data.blogspot.in/2016/11/query-session-details.html .
감사해요.
언급URL : https://stackoverflow.com/questions/15541990/sqlplus-how-to-find-details-of-the-currently-connected-database-session
'programing' 카테고리의 다른 글
변환에 대한 페이로드로 동적 경로를 사용하여 Vuex 저장소에서 항목을 삭제하는 방법은 무엇입니까? (0) | 2023.06.27 |
---|---|
Vuejs/Vuex에서 반응성(기본값) 속성을 만드는 올바른 방법은 무엇입니까? (0) | 2023.06.27 |
비XML 데이터에 대해 연결된 서버를 쿼리할 때 "Xml 데이터 유형이 분산 쿼리에서 지원되지 않습니다." 오류가 나타나는 이유는 무엇입니까? (0) | 2023.06.22 |
'git submodule'을 사용하여 특정 버전의 서브모듈을 체크아웃하려면 어떻게 해야 합니까? (0) | 2023.06.22 |
Git: 분기에 대해 기본적으로 구성된 원격은 무엇입니까? (0) | 2023.06.22 |