CODE RETOUR -518

THE EXECUTE STATEMENT DOES NOT IDENTIFY A VALID PREPARED STATEMENT

Explication
L’une des conditions suivantes existe :

  • L’instruction identifiée dans l’instruction EXECUTE n’a pas été préparée.
  • L’instruction identifiée dans l’instruction EXECUTE identifie une instruction SELECT ou ASSOCIATE LOCATORS
  • L’instruction identifiée dans l’instruction EXECUTE IMMEDIATE identifie une instruction SELECT ou ASSOCIATE LOCATORS.
  • L’instruction identifiée dans l’instruction EXECUTE est une instruction de définition de données écrite en langage SQL natif et cette instruction a déjà été exécutée.
  • Une instruction COMMIT ou ROLLBACK a été émise. L’opération COMMIT ou ROLLBACK a détruit la version préparée de l’instruction.

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

Réponse du programmeur
Assurez-vous de préparer la déclaration avant d’EXÉCUTER. Assurez-vous également que l’instruction préparée n’est pas :

  • Une instruction SELECT.
  • Une instruction ASSOCIATE LOCATORS.

Si l’instruction est une instruction de définition de données écrite en langage SQL natif et que cette instruction a déjà été exécutée, vous devez la préparer à nouveau avant de pouvoir l’exécuter à nouveau.

Si l’instruction préparée est émise après une instruction COMMIT ou ROLLBACK, effectuez l’une des actions suivantes :

  • Préparez à nouveau la déclaration.
  • Liez le package d’application avec l’option KEEPDYNAMIC(YES) pour conserver l’instruction préparée après une instruction COMMIT ou ROLLBACK.
  • Liez le package d’application avec RELEASE(DEALLOCATE) pour conserver une instruction préparée qui référence les tables temporaires déclarées après une instruction COMMIT.

SQLSTATE
07003