Я запускаю запрос из JAVA, запрос содержит функцию DATEDIFF, в которой параметром является ключевое слово, мы можем указать гг, мм, день и т. д. поэтому я получаю это ключевое слово от пользователя в качестве параметра и устанавливаю его в запросе, но проблема в том, что он не выполняется, он выдает исключение как неверный параметр для аргумента 1. Если я запускаю тот же запрос в КЛИЕНТЕ, он дает результат, но если я даю кавычки ключевому слову, например «день», он дает то же самое ошибка также в КЛИЕНТЕ. Итак, мой вопрос, как мне установить его в запросе из JAVA. Сейчас делаю примерно так
Код: Выделить всё
for (String param : params) {
try {
namedParameterStatement.setObject(param,requiredFilterValues.get(param));
} catch (RuntimeException e) {
}
}
Я использую этот запрос
Код: Выделить всё
SELECT CUST_KEY,Eff_Date_From,Eff_Date_To, DATEDIFF(:intervals,Eff_Date_From,Eff_Date_To) as datediffs,Active FROM CUSTOMER_DIM WHERE Active = :active
Я передаю значения для интервалов параметрови активен. Проблема связана с :intervals, поскольку он принимает ключевые слова.
Я думаю, что Java-программа устанавливает параметр как строку, поэтому она генерирует ошибку. Как я могу это реализовать?
Подробнее здесь:
https://stackoverflow.com/questions/352 ... ng-in-java