Page 1 sur 1

Longueur nom des fonctions SQL

Posté : lun. 25 juil. 2022, 08:43:12
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

Re: Longueur nom des fonctions SQL

Posté : lun. 25 juil. 2022, 08:59:07
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 ?

Re: Longueur nom des fonctions SQL

Posté : lun. 25 juil. 2022, 09:48:25
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

Re: Longueur nom des fonctions SQL

Posté : lun. 25 juil. 2022, 16:27:03
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

Re: Longueur nom des fonctions SQL

Posté : lun. 25 juil. 2022, 18:35:49
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' ;

Re: Longueur nom des fonctions SQL

Posté : lun. 25 juil. 2022, 21:33:15
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