2010-03-18 5 views
2

J'ai quelques scripts sql que j'ai besoin de lancer via SQL * Plus. Ces scripts se connectent plusieurs fois en tant qu'utilisateurs différents avec un connect user_01/[email protected]_01. Maintenant, chaque fois que le script se connecte, il confirme la connexion réussie avec un connected. C'est distrayant et je veux l'éteindre.Puis-je empêcher SQL * Plus d'afficher "connected" lorsque j'ai un "connect" dans un script?

Je peux obtenir ce que je veux avec un

set termout off 
connect user_01/[email protected]_01 
set termout on 

Y at-il une solution plus élégante à mon problème?

Remarque, cela n'aide pas définitivement à set termout off au début du script car j'ai besoin de savoir si une commande ne s'est pas exécutée avec succès.

Répondre

3

Voici un conseil que j'ai utilisé du livre de Tom Kyte (oubliez lequel). J'ai un script appelé connect.sql dans mon répertoire sqlplus:

set termout off 
connect &1 
@login 

et dans mon glogin.sql J'ai ajouté ceci:

select lower(user) || '@' || 
substr(global_name,1, decode(dot, 0, length(global_name), dot-1)) 
global_name 
from (select global_name, instr(global_name,'.') dot from global_name); 

set sqlprompt '&gname> ' 

set termout on 

j'appelle

@connect user_01/[email protected]_01 

place de

connect user_01/[email protected]_01 
+0

semble que ce soit le plus proche que je peux obtenir. –

0

Si c'est vraiment bot la sienne, vous vous pouvez essayer

SQL> set feedback off 
SQL> alter session set current_schema=SCOTT; 

Mais cela peut ne pas répondre à vos besoins ....

+0

Merci! Et oui, ça ne répond pas à mes besoins. –