> 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

Les 10 tendances clés de l’Expérience Client (CX) pour 2025

Les 10 tendances clés de l’Expérience Client (CX) pour 2025

Dans le contexte actuel, l'expérience client est un levier clé de réussite. Pour rester compétitives, les entreprises doivent adopter des stratégies CX audacieuses, en s'appuyant sur le cloud, le digital et l'IA. Alors quelles stratégies mettre en place pour garder une longueur d’avance ?

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