Longueur nom des fonctions SQL

RPG (3 et 4, free), CL, SQL, etc...
Répondre
EdoSi
Messages : 4
Enregistré le : jeu. 14 juil. 2022, 10:33:56

Longueur nom des fonctions SQL

Message par EdoSi »

Bonjour
Je suis en V7R4 et je suis étonné car lorsque je veux créer une fonction SQL avec un nom supérieur à 35 ça ne compile pas !!

Message erreur CZM0275(30) unexpected text xxxx encountered.

Est ce normal ?
Quelle est la Longueur max des noms pour les fonctions SQL ?

Merci pour votre aide
Cordialement
Eric

nbonnet
Messages : 152
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: Longueur nom des fonctions SQL

Message par nbonnet »

Bonjour,

la limite pour les noms SQL est de 128 caractères : https://www.ibm.com/docs/en/i/7.4?topic ... sql-limits

C'est le compilateur C qui n'est pas content ici, pouvez vous partager le code SQL de la fonction ?
Nathanaël

nbonnet
Messages : 152
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: Longueur nom des fonctions SQL

Message par nbonnet »

Cette fonction compile bien chez moi :

CREATE FUNCTION nb.nomdefonctionlonguepourfaireledouble
(X DOUBLE)
RETURNS DOUBLE
LANGUAGE SQL
CONTAINS SQL
NO EXTERNAL ACTION
DETERMINISTIC
RETURN 2*x
Nathanaël

EdoSi
Messages : 4
Enregistré le : jeu. 14 juil. 2022, 10:33:56

Re: Longueur nom des fonctions SQL

Message par EdoSi »

Bonjour Nathanaël

Ci-joint un script SQL qui ne compile pas .
Par contre si on enlève quelques caractères du nom de la fonction ça compile !!

De plus si on remplace RETURN TABLE par RETURN VARCHAR(30) par exemple et qu'on enlève PIPE et on remplace le RETURN par RETRUN PROCEDURETECHNIQUE_W ça compile même avec le nom "long" !!

Eric
Fichiers joints
Debug METMAJ01_SFMiseAJourModeExpeditionTransporteur.zip
(729 Octets) Téléchargé 37 fois

nbonnet
Messages : 152
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: Longueur nom des fonctions SQL

Message par nbonnet »

J'ai cherché un moment ... essayez en supprimant DBGVIEW = *source et cela compile !

A aucun endroit la document n'indique cette restriction (je vérifie et j'ouvre un incident).

Attention également :
SET PROCEDURETECHNIQUE_W = sysibm.ROUTINE_SPECIFIC_NAME ;
=> tel quel, sysibm.ROUTINE_SPECIFIC_NAME doit être une variable SQL, ce qui m'étonnerait dans sysibm.

Pour compiler une première fois, essayer une valeur en dur :
SET PROCEDURETECHNIQUE_W = 'Qq chose' ;
Nathanaël

EdoSi
Messages : 4
Enregistré le : jeu. 14 juil. 2022, 10:33:56

Re: Longueur nom des fonctions SQL

Message par EdoSi »

J'ai cherché aussi pas mal de possibilités pour compiler mais rien d'acceptable.

Pour PROCEDURETECHNIQUE_W je vais le coder en dur (ce que je n'aime pas) pour voir ce que ça donne.

Merci pour ton aide

Répondre