CODE RETOUR -214

AN EXPRESSION IN THE FOLLOWING POSITION, OR STARTING WITH position-or-expression-start IN THE clause-type CLAUSE IS NOT VALID. REASON CODE = reason-code

Explication :
L’expression identifiée par la première partie de l’expression expression-start dans la clause clause-type n’est pas valide pour la raison spécifiée par le reason-code comme suit :

1

Le fullselect de l’instruction select n’est pas une sous-sélection. Les expressions ne sont pas autorisées dans la clause ORDER BY pour ce type d’instruction select. Ce code anomalie se produit uniquement lorsque le  clause-type est ORDER BY.

2

DISTINCT est spécifié dans la clause SELECT, et un nom de colonne ou une sort-key-expression dans la clause ORDER BY ne peut pas correspondre exactement à un nom de colonne ou une expression dans la liste de sélection. Ce code anomalie se produit uniquement lorsque le  clause-type est ORDER BY.

3

La liste de sélection comprend une fonction d’agrégat ou la sous-sélection comprend une clause GROUP BY et l’expression n’est pas une fonction d’agrégat ou ne correspond pas exactement à une expression de la liste de sélection.

4

Le regroupement est provoqué par la présence d’une fonction d’agrégat dans la clause ORDER BY. Ce code anomalie se produit uniquement lorsque le clause-type est ORDER BY.

5

L’expression dans une clause GROUP BY ne peut pas contenir de scalaire-fullselect. Ce code anomalie se produit uniquement lorsque le clause-type est GROUP BY.

6

Utilisation non valide de scalar-fullselect. Ce code anomalie peut être émis lorsque le scalar-fullselect apparaît dans une clause ORDER BY, l’instruction RETURN d’une fonction SQL contient un scalar-fullselect ou un scalar-fullselect est passé en tant qu’argument sur une instruction CALL pour un paramètre qui est défini comme paramètre d’entrée (IN).

8

DISTINCT est spécifié dans la fonction LISTAGG et la première expression d’argument ne peut pas correspondre exactement à la première expression de clé de tri de ORDER BY spécifiée dans la clause WITHIN GROUP. Ce code anomalie se produit uniquement lorsque le clause-type est ORDER BY.

Action du système :
L’instruction ne peut pas être traitée.

Réponse du programmeur :
Modifiez l’instruction select en fonction de la raison spécifiée par le code de raison. Utilisez les suggestions suivantes pour modifier l’instruction select :

1

Supprimez l’expression de la clause ORDER BY. Si vous essayez de référencer une colonne du résultat, remplacez la clé de tri par la forme simple-integer ou simple-column-name. Pour plus d’informations, consultez le diagramme de syntaxe ORDER BY dans order-by-clause.

2

Supprimez DISTINCT de la clause SELECT.

3

Remplacez l’expression de la clause ORDER BY ou GROUP BY par une fonction d’agrégat ou modifiez la clause pour utiliser un identificateur de colonne numérique ou un nom de colonne.

4

Ajoutez une clause GROUP BY ou supprimez la fonction d’agrégat de la clause ORDER BY.

5

Supprimez le fullselect scalaire de la clause GROUP BY.

6

Supprimez le scalaire fullselect de l’instruction.

8

Lorsque DISTINCT est spécifié dans la fonction LISTAGG, assurez-vous que ORDER BY est spécifié et que la première expression de clé de tri correspond à l’argument de LISTAGG.

ETATSQL :
42822