tutorial run plus comandos 11g oracle sqlplus

oracle - run - sqlplus linux



sqlplus cómo encontrar detalles de la sesión de base de datos conectada actualmente (7)

Recientemente he comenzado a trabajar en las bases de datos de Oracle. Generalmente tengo muchas ventanas sqlplus abiertas a diferentes bases de datos de Oracle. Al cambiar de una sesión de sqlplus a otra, ¿cómo puedo ver los detalles de la sesión actual para cada sesión de sqlplus? ¡Cualquier ayuda es muy apreciada!


Echa un vistazo a este (c) Tanel Poder . Puede ejecutarlo desde su glogin.sql (de modo que estas configuraciones se actualizarán cada vez que se conecte, o simplemente ejecútelo manualmente. Observe el comando del host title : cambia el título de la ventana de la consola sql * plus con información de la sesión: extremadamente útil con muchas ventanas Abierto simultáneamente.

-- 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

Salida de muestra:

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


Podemos obtener los detalles y el estado de la session de la siguiente consulta como:

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'' /

Para más detalles: session

Gracias,


Sé que esta es una pregunta antigua, pero probé todas las respuestas anteriores pero no funcionó en mi caso. Lo que finalmente me ayudó es

SHOW PARAMETER instance_name


Tratar:

select * from v$session where sid = SYS_CONTEXT(''USERENV'',''SID'');

Usted también podría estar interesado en esta publicación AskTom

Después de ver tu comentario, puedes hacer:

SELECT * FROM global_name;


select * from v$session where sid = to_number(substr(dbms_session.unique_session_id,1,4),''XXXX'')


select sys_context(''USERENV'',''INSTANCE_NAME'') from dual;

Y

select instance_name from v$instance;

le dará el nombre de la instancia. También puedes usar select * from global_name; para ver el nombre global de la instancia.


show user

para conectarse usuario

select instance_name from v$instance

para obtener instancia o establecer en sqlplus

set sqlprompt "_USER''@''_CONNECT_IDENTIFIER> "