DB2 SQL Error: SQLCODE=-514, SQLSTATE=26501
Lorsque j'ai utilisé JDBC pour exécuter une instruction préparée de la manière suivante:
select count(1) from TableName where col1 = 9 and col2 = ?
il a eu lieu une DB2 SQL Error:
SQLCODE=-514, SQLSTATE=26501, SQLERRMC=SQL_CURSH200C1, PILOTE=3.64.104.
de plus, ce problème ne viennent pas à chaque fois que,parfois, il peut interroger avec succès.
Quelqu'un pourrait-il me dire la raison pour laquelle le problème, merci beaucoup!
PS:DB2 version est de 9,5
Montrer le code comment vous préparer et exécuter l'instruction
OriginalL'auteur kingson | 2013-07-30
Vous devez vous connecter pour publier un commentaire.
Voici un lien vers le DB2 codes d'erreur, de sorte que vous pouvez regarder votre prochain erreur vous-même.
DB2 pense que votre sélection est à l'aide d'un curseur. Essayez
et voir si l'erreur disparaît.
Voici l'explication complète de l'erreur de l'IBM DB2 code d'Erreur manuel.
-514
LE CURSEUR curseur-le nom n'EST PAS DANS UN ÉTAT
Explication
Le programme d'application a essayé d'utiliser un curseur, 'curseur-nom", qui n'est pas dans un état. Le curseur est associé à un énoncé que:
Système d'action
La déclaration ne peut pas être traitée.
Programmeur réponse
Pour le cas 1, assurez-vous de la préparation de la déclaration qui est nommé dans l'instruction DECLARE CURSOR pour 'curseur-nom' avant d'essayer d'ouvrir le curseur.
Pour le cas 2, prendre l'une des actions suivantes:
Modifier votre déclaration préparée à l'avance, de sorte qu'il ressemble à celui que je vous ai donné ma réponse.
N'utilisant
count(*)
au lieu decount(1)
vraiment confondre l'analyseur?Ce n'est pas une commune DB2 erreur, donc je ne sais vraiment pas. L'erreur peut être déclenchée par une autre partie du code. Je suppose que kingston peut nous dire si ma réponse a fonctionné ou pas.
Il ne fonctionne pas avec la même erreur.
OriginalL'auteur Gilbert Le Blanc
Ce problème peut se produire lorsque vous n'avez pas préparé votre déclaration correctement avant d'exécuter la executeQuery(). Vérifier le code, si vous avez préparé la requête correctement, et que vous avez correctement défini les valeurs.
Si vous ne pouvez obtenir l'erreur, placez le code complet extrait de code que vous utilisez pour la préparation de la déclaration et de l'exécuter.
OriginalL'auteur Nageswaran M