Accueil du site > Les articles > Lancer plusieurs requêtes SQL dans un CL
Version à imprimer Enregistrer au format PDF

Lancer plusieurs requêtes SQL dans un CL

mercredi 11 août 2004, par Grégory Jarrige Visites  9131 Première mise en ligne le mardi 4 novembre 2003.

Comment enchaîner plusieurs requêtes SQL dans un programme CL. C’est très facile grâce à l’instruction RUNSQLSTM.


Exemple de source pour le membre ESSAISQL du fichier QSQLSRC :

Pour commencer, créez un fichier source QSQLSRC (dans QGPL, par exemple). Puis créez un membre de type TXT comme dans l’exemple ci-dessous.

0044.00 —*********************************************************
0045.00 — * Suppression des enregistrements du fichier FRM001P *
0046.00 —*********************************************************
0047.00 —
0048.00 DELETE FROM FRM001P ;
0049.00 —*********************************************************
0050.00 — * Mises à jour de fichiers  *
0051.00 —*********************************************************
0052.00 —
0053.00 INSERT INTO FRM001P
0054.00 SELECT W1DVAL FROM FRM800W GROUP BY W2DVAL ;
0312.00 —
0363.00 UPDATE BIBREF/FICSTK
0364.00 SET GROUPE = ’ ’
0365.00 WHERE GROUPE = ’02’ ;
0366.00 —

Il ne reste plus qu’à lancer le groupe de commandes SQL ci-dessus par un RUNSQLSTM en indiquant le fichier source, ainsi que *NONE dans le contrôle de validation si le fichier n’est pas journalisé.

Bon à savoir  :

  • le point virgule est obligatoire après chaque requête SQL.
  • si vous êtes plus à l’aise avec Query qu’avec SQL, vous pouvez préparer vos requêtes avec Query Manager (cf. commande STRQM) dont l’interface utilisateur est proche du Query et qui génère du code SQL. Il ne reste plus alors qu’à copier-coller le code généré par QM dans votre source et à faire les retouches nécessaires.

P.-S.

Pas de conclusion.