Как я могу выполнить SQL-утверждение внутри udf в SQL?
Я хочу выполнить строковое выражение типа (7*8/4+1) внутри функции, как я могу достичь этого внутри функции.
@Переменная = (@выражение) не помогает, как @переменная рассматривая @expr как строковую переменную, а не как команда.
Пожалуйста, обратите внимание : я добавил выражение как 'Select' +@Expr.
Что плохого я здесь делаю? Большинство вещей, которые я нашел в интернете, бесполезны, так как я не могу использовать EXEC внутри функции, поскольку она возвращает только если команда выполнена или нет, а не результат команды.
Как я могу заставить @expr вести себя как команда sql, когда речь заходит о строке
@Переменная = (@выражение).
Пожалуйста, проведите меня через это.
Что я уже пробовал:
объявить @оценивали десятичное число(18,2)
объявить @vexpr varchar(MAX) = ((15 * 4) + 1)
объявить @formula varchar(max) = @vexpr
SET @formula = 'Select' +@formula
Набор @формула = заменить(@формула , "", ")
SET @evaluated = (@формула)
возвращение @оценивали;
Код опубликовал любые зацепки или подсказки
Когда я выполняю вышеуказанную функцию, я получаю ошибку, как показано ниже :-
Ошибка преобразования типа данных varchar в числовой.
Patrice T
Покажи свой код.
Yogi@FLG
объявить @оценивали десятичное число(18,2)
объявить @vexpr varchar(MAX) = ((15 * 4) + 1)
объявить @formula varchar(max) = @vexpr
SET @formula = 'Select' +@formula
Набор @формула = заменить(@формула , "", ")
SET @evaluated = (@формула)
возвращение @оценивали;
Код опубликовал любые зацепки или подсказки
Patrice T
Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.
Yogi@FLG
Когда я выполняю вышеуказанную функцию, я получаю ошибку
Ошибка преобразования типа данных varchar в числовой.
Yogi@FLG
Когда я выполняю код я получаю ошибку
Ошибка преобразования типа данных varchar в числовой.
CHill60
Опубликуйте код вместо того, чтобы пытаться его описать
Yogi@FLG
объявить @оценивали десятичное число(18,2)
объявить @vexpr varchar(MAX) = ((15 * 4) + 1)
объявить @formula varchar(max) = @vexpr
SET @formula = 'Select' +@formula
Набор @формула = заменить(@формула , "", ")
SET @evaluated = (@формула)
возвращение @оценивали;
Код опубликовал любые зацепки или подсказки