Oracle
 sql >> Base de données >  >> RDS >> Oracle

Quand une PREPARE QUERY échoue-t-elle dans PRO C ?

J'ai écrit BEAUCOUP de pro * c dans le passé et, au fil du temps, je me suis rendu compte que vous ne vouliez pas vérifier le code de retour de l'instruction PREPARE car il ne renvoie jamais de valeur. Voici ce que je veux dire :

La valeur PREPARE sqlca.sqlcode est le code de retour de l'instruction exécutée immédiatement AVANT l'instruction PREPARE. En d'autres termes, si vous vérifiez la sortie de l'instruction PREPARE et l'instruction qui s'est exécutée juste avant l'échec de l'instruction PREPARE, le code retour de la préparation échoue. Si l'instruction précédente a réussi, PREPARE semble avoir réussi.

En d'autres termes, la valeur prepare sqlca.sqlcode est fondamentalement nulle (elle n'échoue jamais toute seule). Donc, si le PREPARE échoue maintenant, vérifiez l'instruction qui s'est exécutée juste avant l'instruction PREPARE et assurez-vous de vérifier la valeur sqlca.sqlcode de celle-ci. Je parie que la déclaration précédente échoue et que l'erreur renvoyée concerne cette déclaration. Ça a du sens ?

-Jim