[Dica] Nome do Usuário no Prompt do SQL*Plus

Scripts Diversos para o Oracle SQL*Plus. (Relacionado a ferramenta Oracle SQL*Plus, para questões de SQL, usar o forum SQL)
Responder
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Há casos em que é necessário ter várias janelas do SQL*Plus abertas ao mesmo tempo. Isso pode confundir a gente, ainda mais se estamos usando vários schemas ou bancos diferentes. Este script ajuda exatamente nisso!

Eu coloquei esse código no login.sql, que roda cada vez que abrimos um Sql*plus:

Selecionar tudo

set termout off 
col user_id   new_value user_id 
col user_name new_value user_name 

select user_id, username user_name 
from user_users 
where username = user; 

col db_name new_value db_name 

select 
  lower(substr(global_name,1,(instr(global_name||'.','.',1,1)-1)))||':'  db_name
from global_name;

set termout on 
set sqlprompt "&db_name&user_name> "
Veja como ficou o prompt depois que eu executei:

Selecionar tudo

SQL> 
SQL> @login
dbglufke:SCOTT> 
dbglufke:SCOTT> 
dbglufke:SCOTT> 
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Melhorei ele: Agora ele mostra a versão do banco também:

Selecionar tudo

set termout off
col user_id   new_value user_id
col user_name new_value user_name

select user_id, username user_name
from user_users
where username = user;

col db_name new_value db_name

select
(select substr(banner,
               instr(banner,'Release',1) + 8,
               instr(banner,'.',1,2)-(instr(banner,'Release',1)+8))
       from v$version where rownum<2)
  ||' '||
  lower(substr(global_name,1,(instr(global_name||'.','.',1,1)-1)))||':'   db_name
from global_name;

set termout on
set sqlprompt "&db_name&user_name> "
Exemplo

Selecionar tudo

9.2 tul:SCOTT> select * from dual
  2  /

D
-
X

9.2 tul:SCOTT> 
9.2 tul:SCOTT> 
9.2 tul:SCOTT> 
Avatar do usuário
anderson
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 75
Registrado em: Seg, 06 Jun 2005 1:08 pm
Localização: Toledo - PR
Contato:
Anderson Nuernberg
---

opa, sabe se isso também funciona no command window do pl/sql developer ?
tentei executar mas não funciona...
tem idéia se funciona?

[]´s
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 10 visitantes