Ошибка в динамическом запросе [сообщение #5864] |
Thu, 23 January 2025 09:07 |
mshp
Сообщений: 2 Зарегистрирован: January 2025
|
Junior Member |
|
|
Добрый день.
Проблема в следующем. Есть элементарный запрос вида
FOR
SELECT COUNT (TABLE1.ID) FROM TRUP WHERE (TABLE1.DATE_POST BETWEEN T_POST_MIN AND T_POST_MAX)
INTO :RESULT
DO
SUSPEND;
В таком виде все нормально работает.
Если же представить это в виде динамического запроса
VR_SQL = 'SELECT COUNT (TABLE1.ID) FROM TABLE1 WHERE (TABLE1.DATE_POST BETWEEN ' || T_POST_MIN || ' AND ' || T_POST_MAX || ')';
FOR
EXECUTE STATEMENT :VR_SQL
INTO :RESULT
DO
SUSPEND;
Выдает ошибку "Only one operand can be of type TIMESHTAMP".
Подскажите, пожалуйста, в чем может быть проблема? Где можно поискать решение?
|
|
|
|
Re: Ошибка в динамическом запросе [сообщение #5866 является ответом на сообщение #5864] |
Thu, 23 January 2025 13:47 |
Massaraksher
Сообщений: 1 Зарегистрирован: January 2025
|
Junior Member |
|
|
'SELECT COUNT (TABLE1.ID) FROM TABLE1 WHERE (TABLE1.DATE_POST BETWEEN ' || T_POST_MIN || ' AND ' || T_POST_MAX || ')';
раскладывается в
SELECT COUNT (TABLE1.ID) FROM TABLE1 WHERE (TABLE1.DATE_POST BETWEEN 21.01.2025 13:00:00 AND 23.01.2025 13:43:11)
А тебе надо
SELECT COUNT (TABLE1.ID) FROM TABLE1 WHERE (TABLE1.DATE_POST BETWEEN '21.01.2025 13:00:00' AND '23.01.2025 13:43:11')
попробуй вот так (внимание на кавычки)
'SELECT COUNT (TABLE1.ID) FROM TABLE1 WHERE (TABLE1.DATE_POST BETWEEN ''' || T_POST_MIN || ''' AND ''' || T_POST_MAX || ''')';
[Обновления: Thu, 23 January 2025 13:48] Известить модератора
|
|
|
|
|