> Tech > Diagnostics SQL : premier contact

Diagnostics SQL : premier contact

Tech - Par Kevin Forsythe - Publié le 24 juin 2010
email

 Les programmeurs rompus aux langages évolués (HLL), tels que RPG et Cobol, ont parfois du mal à diagnostiquer des erreurs en SQL. Cette difficulté est due d’une part à la syntaxe différente de SQL et, d’autre part, à sa « philosophie » elle aussi différente, qui exige que le programmeur spécifie ce qui doit être fait et laisse à l’optimiseur de requêtes SQL le soin de décider comment le faire. C’est pourquoi, dans cet article, je fournis aux programmeurs débutant en SQL quelques principes et conseils de base pour aborder ce genre de problèmes.

Commençons par l’un des moyens les plus simples d’exécuter une instruction SQL : en utilisant ISQL (Interactive SQL). On obtient ainsi une interface écran vert pour exécuter les instructions SQL. Supposons que vous entriez l’instruction suivante :

SELECT PARTNO, SUM(QTYORD)

FROM QGPL/QORDDTL

ISQL affiche une erreur (figure 1).

Le texte du message « Column PARTNO or expression specified in SELECT list not valid » n’est pas suffisamment explicite pour que l’on comprenne bien le problème. Le premier truc de diagnostic est bien connu de tout programmeur OS/400 qui a utilisé l’affichage Command Entry : placer le curseur sur le message d’erreur et appuyer sur la touche d’aide (ou F1) pour afficher le texte d’aide de second niveau (figure 2).

Le texte d’aide de second niveau est plus précis sur ce qui peut avoir causé l’erreur. Dans cet exemple, on nous rappelle qu’une instruction SELECT dont le jeu de résultats contient à la fois un nom de colonne simple (comme PARTNO) et une fonction de colonne (comme SUM(QTYORD)) doit avoir une clause GROUP BY qui référence la colonne. L ’instruction corrigée est donc

SELECT PARTNO, SUM(QTYORD)

FROM QGPL/QORDDTL

GROUP BY PARTNO

 

Téléchargez cette ressource

Guide des Solutions Cloud & Services Managés Simplifiés

Guide des Solutions Cloud & Services Managés Simplifiés

Comment capitaliser sur son existant tout en bénéficiant, dès à présent, des promesses de flexibilité et de scalabilité du cloud ? Découvrez les bonnes pratiques pour répondre aux défis de simplification du Cloud dans ce nouveau TOP 5.

Tech - Par Kevin Forsythe - Publié le 24 juin 2010