Informix, определяющий ИНТЕРВАЛ с параметром - PullRequest
2 голосов
/ 28 мая 2009

В Informix я делаю следующее, чтобы удалить строки старше 20 секунд.

delete from sometable
where someDateColumn < (current - interval (20) second to second);

Однако я хочу сделать интервал настраиваемым в хранимой процедуре, но я не могу сделать

CREATE PROCEDURE i_hate_informix (prm_timeframe int)
    DELETE   sometable
    WHERE    someDateColumn < (current - interval (prm_timeframe) second to second);
END PROCEDURE;

1 Ответ

3 голосов
/ 28 мая 2009

Я нашел ответ сам.

Интервал нельзя определить динамически с помощью переменной. Но вы можете использовать «единицы второго», поэтому моя процедура становится

CREATE PROCEDURE i_hate_informix (prm_timeframe int)
   DELETE   sometable
   WHERE    someDateColumn < (current - prm_timeframe units second);
END PROCEDURE;
...