CODE RETOUR -449

CREATE OR ALTER STATEMENT FOR FUNCTION OR PROCEDURE routine-name CONTAINS AN INVALID FORMAT OF THE EXTERNAL NAME CLAUSE OR IS MISSING THE EXTERNAL NAME CLAUSE

Explication
Une erreur a été trouvée dans la clause EXTERNAL NAME de l’instruction CREATE FUNCTION, CREATE PROCEDURE, ALTER FUNCTION ou ALTER PROCEDURE pour routine-name, ou la clause est nécessaire mais n’a pas été spécifiée.

Pour les routines externes avec LANGUAGE JAVA, le nom doit être spécifié et il doit contenir un nom de external-java-routine-name valide de la forme suivante : jar-name:package-id…class-id.method-id(method- Signature)

  • Aucun espace n’est autorisé dans les guillemets simples.
  • Le method-name se compose de la liste des package-idsclass-id et de method-id et ne doit pas dépasser 254 octets.
  • Zéro ou plusieurs package-ids peuvent être spécifiés, précédant class-id.
  • La method-signature est facultative et correspond à une liste de types de données Java™ séparés par des virgules. Si spécifié, la method-signature ne doit pas dépasser 1024 octets.
  • Si plusieurs chaînes sont spécifiées, la longueur totale de toutes les chaînes concaténées pour le external-java-routine-name ne doit pas être supérieure à 1305.

Pour les routines externes avec un langage autre que JAVA, le nom externe doit être un identifiant court avec des lettres ou des chiffres. Le premier caractère doit être une lettre (il s’agit de la convention de nommage MVS™ pour les modules de chargement). Une cause possible de cette erreur est l’inclusion d’un espace dans le nom.

Si la clause est omise, le nom externe est par défaut function-name. Cependant, pour CREATE FUNCTION ou CREATE PROCEDURE, si le nom de la fonction ou de la procédure comporte plus de huit caractères, la clause EXTERNAL NAME doit être explicitement spécifiée pour spécifier un identificateur court valide comme nom externe.

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

Réponse de l’utilisateur
Lorsque LANGUE est JAVA, les causes possibles incluent :

  • Omettre la clause EXTERNAL NAME.
  • Y compris un blanc.
  • Avoir le ‘!’ au début ou à la fin du nom.
  • Spécification d’un nom de routine java externe non valide.

Réponse du programmeur
Corrigez la syntaxe de l’instruction SQL.

SQLSTATE
42878