J'ai une question pour vous les seniors. Il y a un champ sfz dans le tableau. Le type de caractère a une longueur fixe de 18 bits. J'utilise un curseur pour attribuer ce champ à une variable vsfz dans le processus de stockage. . Il a également un type de caractère de longueur fixe de 18 bits, J'ai écrit une instruction de requête : select bj from kq201905 où sfz=vsfz;, qui peut être interrogée correctement. Parce que je souhaite interroger plusieurs tables, les noms de tables doivent être attribués à l'aide de boucles de variables. J'utilise donc des instructions de préparation pour les assembler,
set @vsk=concat('select bj from ',vkn', où sfz= ',vsfz,';' );
prepare stmt from @vsk;
execute stmt;
deallocate prepare stmt;
Après l'exécution, le résultat de la requête s'est avéré erroné. J'ai testé que cela n'avait rien à voir avec la variable du nom de la table, et maintenant je soupçonne qu'il s'agit d'un problème avec la clause Where. Si quelqu'un connaît la raison, dites-le-moi, merci !