Nous avons un SP dans lequel nous construisons une requête et ensuite exécuter la requête en utilisant l'appel exec(@select)
, où la variable qui contient la requête SQL comme il est construit est @select
.Étrange erreur "nom de colonne invalide" lors de l'exécution SP
Une demande d'ajout d'une nouvelle colonne au jeu de résultats renvoyé par le fournisseur de services m'a été affectée. Cette nouvelle colonne ne doit pas être retournée dans toutes les circonstances, mais seulement dans certaines conditions. Naturellement, j'ai ajouté le code suivant au SP.
IF @conditionIsMet
BEGIN
set @select = @select + ", 'compQty' = convert(varchar(53), di.qty) "
END
Cela a bien fonctionné jusqu'à aujourd'hui, quand mon application ne cesse de lancer une exception SQL avec le message, "nom de colonne non valide: compQty". C'est erratique et l'exception n'est pas toujours lancée. L'exécution du SP dans SQL Server Management Studio ne génère aucune erreur.
La colonne est rendue avec l'en-tête 'compQty'. Donc, l'application devrait ramasser la colonne, mais il ne semble pas !!
Quelqu'un peut-il vous aider?
log la valeur de @ Sélectionnez, comparez le "cela a fonctionné" au "il a échoué" et voyez s'il y a un modèle –
@KM, quand il échoue, je cours le SP dans le studio de gestion et je peux voir la colonne compQty. Il semble que resultSet.getString ("compQty") ne voit pas la colonne compQty. –
Avez-vous essayé de spécifier complètement la colonne, c'est-à-dire le nom de table.compQty? En outre, au lieu d'utiliser des guillemets, il est préférable d'utiliser des crochets, c'est-à-dire [nom_table]. [CompQty]. –