Salut
Dans un script shell j'exécute un isql qui appelle un procédure stockée.
La procédure ne retourne aucun flux de donnée mais alimente des variables qui sont retournées en output de la procédure stockée.
Le but est de créer un log style :
Mon problème est que cet affichage est complètement pollué par l'output automatiquement généré par sybase à la sortie de la procédure.20130319 16:54 dbid 31514 last dump transaction on Sep 28 2012 2:31PM
20130319 16:54 Total DB size : 150.00 Mo
20130319 16:54 Reserved : 1.00 Mo - Free : 149.00 Mo - Unused : 0.00 Mo
20130319 16:54 ------------------------------
20130319 16:54 Checking tempdb
20130319 16:54 dbid 2 last dump transaction on Mar 19 2013 4:53PM
20130319 16:54 Total DB size : 3527.00 Mo
20130319 16:54 Reserved : 1.00 Mo - Free : 3526.00 Mo - Unused : 0.00 Mo
20130319 16:54 ------------------------------
20130319 16:54 End of monitor.sh on SMSTDEV
A chaque appel sybase écrit des lignes de type :
en cherchant sur le qweb, j'ai découvert une option :20130319 16:54 dbid 31514 last dump transaction on Sep 28 2012 2:31PM
20130319 16:54 Total DB size : 150.00 Mo
20130319 16:54 Reserved : 1.00 Mo - Free : 149.00 Mo - Unused : 0.00 Mo
20130319 16:54 ------------------------------
20130319 16:54 Checking tempdb
Return parameters:
@dbid @dumptrdate @totalsize @reserved @data
@index_size @unused
----------- ------------------------------ -------------- -------------- --------------
-------------- --------------
2 Mar 19 2013 4:53PM 3527.00 1.00 0.00
0.00 0.00
20130319 16:54 dbid 2 last dump transaction on Mar 19 2013 4:53PM
20130319 16:54 Total DB size : 3527.00 Mo
20130319 16:54 Reserved : 1.00 Mo - Free : 3526.00 Mo - Unused : 0.00 Mo
20130319 16:54 ------------------------------
20130319 16:54 End of monitor.sh on SMSTDEV
Ca permet bien d'enlever les ajouts de sybase mais ça supprime également les valeurs retournées dans mes variables output passées à la procédure!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2set proc_output_params OFF
Je suis sûre qu'il existe un moyen de récupérer les valeurs dans les variables output SANS subir ce foutu message qui sert à rien.... Si quelqu'un connait la méthode, c'est pas de refus^^
voici l'appel de la procédure, depuis isql :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 execute @retCode=dbadmin..getDbUsage @dbname, @dbid=@dbid output, @dumptrdate=@dumptrdate output, @totalsize=@dbsize output, @reserved=@reserved output, @data=@data output, @index_size=@index_size output, @unused=@unused output
L'entete de la procédure :
au cas ou le dernier select de la procédure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 create procedure dbo.getDbUsage( @dbname varchar(30), @dbid int out, @dumptrdate datetime out, @totalsize numeric(11,0) out, @reserved numeric(11,0) out, @data numeric(11,0) out, @index_size numeric(11,0) out, @unused numeric(11,0) out )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 select @reserved = convert( numeric(11, 0), ( sum(res_pgs) + @slog_res_pgs) * ( low / 1024 ) / 1024), @data = convert( numeric(11, 0), ( sum(dpgs) + @slog_dpgs - @empty_dpgs) * ( low / 1024 ) / 1024), @index_size = convert(numeric(11, 0), sum(ipgs) * (low / 1024) / 1024 ), @unused = convert(numeric(11, 0), (sum(unused) + @empty_dpgs) * ( low / 1024 ) / 1024) from #pgcounts
Partager