IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Adaptive Server Enterprise Sybase Discussion :

Supprimer "output parameters" dans isql


Sujet :

Adaptive Server Enterprise Sybase

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2003
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 51
    Points : 33
    Points
    33
    Par défaut Supprimer "output parameters" dans isql
    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 :
    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
    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.

    A chaque appel sybase écrit des lignes de type :
    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
    en cherchant sur le qweb, j'ai découvert une option :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    set proc_output_params OFF
    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!!

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

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juillet 2003
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 51
    Points : 33
    Points
    33
    Par défaut
    Réponse : on ne peut pas pour la procédure appelée directement par isql.
    Solution : écrire une procédure chapeau qui appelle la procédure voulue.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Variable avec quotes(simple ou double)dans un input
    Par -Neo- dans le forum Langage
    Réponses: 1
    Dernier message: 25/06/2007, 11h23
  2. Réponses: 15
    Dernier message: 21/02/2007, 17h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo