У нас есть пакет SP, в котором мы создаем запрос, а затем выполняем запрос с помощью вызова exec(@select)
, где переменная, содержащая SQL-запрос по мере ее построения, равна @select
.Странная ошибка «Недопустимое имя столбца» при выполнении SP
Мне был назначен запрос на добавление нового столбца в набор результатов, возвращаемый SP. Этот новый столбец не должен возвращаться при любых обстоятельствах, но только при определенном условии. Естественно, я добавил следующий код в SP.
IF @conditionIsMet
BEGIN
set @select = @select + ", 'compQty' = convert(varchar(53), di.qty) "
END
Это работало отлично до сегодняшнего дня, когда мое приложение продолжает бросать исключение SQL с сообщением «Invalid имя столбца: compQty». Это неустойчиво, и исключение не выбрасывается всегда.
Выполнение SP в SQL Server Management Studio не дает ошибок. Столбец отображается с заголовком «compQty». Таким образом, приложение должно забрать столбец, но это не похоже!
Может ли кто-нибудь помочь?
журнала значение @ Выберите, сравните «он сработал» с «он сработал» и посмотрите, есть ли шаблон –
@KM, когда он терпит неудачу, я запускаю SP в Management Studio, и я могу увидеть столбец compQty. Похоже, что resultSet.getString ("compQty") не видит столбец compQty. –
Вы пробовали полностью указать столбец i.e. tablename.compQty? Кроме того, вместо использования кавычек лучше использовать квадратные скобки, то есть [tablename]. [CompQty]. –