h1

Quelle est la différence entre un RUN et un QUIT ?

septembre 12, 2009

Aujourd’hui, je voulais vous parler de la différence entre les instructions RUN et QUIT.  Toby Dunn a écrit une explication très bien faite sur le forum anglophone SAS-L. Voici une traduction possible.

1. L’instruction RUN

L’instruction RUN dit à SAS d’exécuter les instructions précédentes (c’est-à-dire l’étape data qui vient d’être compilée ou la procédure). C’est un délimiteur d’étape qui dit : « c’est la fin de l’étape ou de la procédure. Maintenant exécute le code. ».

Vous n’avez pas besoin d’utiliser l’instruction RUN, le début d’une autre étape data ou d’une procédure feront le boulot aussi. Cependant utiliser une instruction RUN nettoiera votre log.

2. L’instruction QUIT

L’instruction QUIT est aussi un délimiteur d’étape. Quelques procédures (par exemple PROC DATASETS, PROC CATALOG) permettent de soumettre plusieurs étapes à l’intérieur d’une procédure sans avoir à terminer la procédure. Dans ces cas là, vous ajoutez une instruction RUN pour terminer une étape dans cette procédure et une instruction QUIT pour terminer la procédure.

3. Le cas particulier de PROC SQL

SQL est un peu l’exception qui confirme la règle car cette procédure nécessite une instruction QUIT et toute instruction RUN sera ignorée. Ceci est dû au fait qu’elle exécute chaque instruction automatiquement. Il n’y a donc aucun besoin d’une exécution par groupe avec RUN mais un réel besoin d’un délimiteur de fin d’étape.

2 commentaires

  1. en gros « la proc, tu la RUN ou tu la QUIT »!


    • la proc SQL ( comme la datasets … ) n’a pas besoin de run pour s’exécuter
      exemple :
      PROC SQL ;
      CREATE TABLE toto AS
      SELECT name FROM sashelp.class
      ;

      Lorsque je soumets ce sas, il fonctionne et dans la barre de titre de la fenêtre editeur est affiché : proc sql en cours d’exécution
      cela signifie que la proc SQL reste chargé en mémoire

      je soumets à nouveau les 3 lignes suivantes

      CREATE TABLE titi AS
      SELECT * FROM sashelp.class
      ;

      je vais obtenir une autre table SAS

      le QUIT sert à décharger la Proc en mémoire



Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :