CODE RETOUR -577

object-type object-name ATTEMPTED TO MODIFY DATA WHEN THE DEFINITION OF THE FUNCTION OR PROCEDURE DID NOT SPECIFY THIS ACTION

Explication
L’environnement actuel n’autorise pas les instructions SQL qui modifient les données. L’une des situations suivantes s’est produite :

  • Une fonction définie par l’utilisateur ou une procédure stockée object-name a été invoquée et a tenté de modifier des données, mais la fonction ou la procédure a été définie sans l’option MODIFIES SQL.
  • Une fonction définie par l’utilisateur ou une procédure stockée object-name a été invoquée et a tenté d’exécuter une instruction de définition de données, mais la fonction ou la procédure a été définie sans l’option MODIFIES SQL.
  • Une fonction ou procédure définie avec READS SQL DATA, CONTAINS SQL ou NO SQL a tenté d’appeler une autre fonction ou procédure définie avec MODIFIES SQL DATA.
  • Une fonction définie par l’utilisateur ou une procédure stockée object-name a été invoquée et a tenté d’utiliser une expression NEXT VALUE. Cependant, la fonction ou la procédure a été définie sans l’option MODIFIES SQL DATA.

Dans un environnement de fonctions et de procédures imbriquées, l’option SQL en vigueur est la plus restrictive qui a été spécifiée dans la hiérarchie imbriquée de fonctions et de procédures. L’option d’accès aux données SQL en effet ne permet pas de modifier les données.

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

Réponse du programmeur
Utilisez une instruction ALTER pour modifier la définition de la fonction ou de la procédure afin d’autoriser les instructions qui modifient les données, ou supprimez l’instruction SQL défaillante de la fonction ou de la procédure externe.

SQLSTATE
38002