Maison >Java >javaDidacticiel >Pourquoi ne puis-je pas utiliser les paramètres d'instruction préparée pour les noms de table dans SQL ?
Problème de paramètre d'instruction préparée avec le nom de table
Lors d'une tentative de définition dynamique d'un nom de table pour la récupération de données, une erreur s'est produite dans le exécution d'une instruction préparée. La raison de cette erreur provient de l'utilisation d'un paramètre où un nom de table est attendu.
L'exemple de code fourni utilise une instruction préparée avec un espace réservé de paramètre "?" et tente de lui attribuer une valeur, représentant un nom de table. Toutefois, cela n'est pas autorisé car les noms de tables ne peuvent pas être spécifiés dynamiquement via des paramètres. Ils doivent être explicitement définis dans la requête elle-même.
Résolution
Pour résoudre ce problème, codez en dur le nom de la table directement dans la chaîne de requête, comme illustré ci-dessous :
private String query1 = "SELECT plantID, edrman, plant, vaxnode FROM [" + reportDate + "]"?";
Cette modification garantit que le nom de la table est correctement défini dans la requête et peut être exécuté avec succès sans l'erreur susmentionnée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!