Удалить строки, которые старше одного дня из таблицы оракула - PullRequest
0 голосов
/ 16 октября 2019

У меня есть таблица -

GENERIC_RECORDS (ENTRY_NO NUMBER, 
                 DATE_TIME VARCHAR2(25) , 
                 LOG_ID VARCHAR2(20), 
                 LOG_FILE_NAME VARCHAR2(200));

ENTRY_NO     DATE_TIME                  LOG_ID    LOG_FILE_NAME
1            2019-08-23 16:59:29.867    123       Log_temp1
2            2019-08-31 17:32:42.019    124       Log_temp2
3            2019-09-28 15:30:41.019    125       Log_temp3
4            2019-10-16 10:30:39.014    126       Log_temp4

Я хочу удалить записи из этой таблицы, которые старше 1 дня. в приведенном выше примере должна остаться только последняя запись

Спасибо,

Ответы [ 2 ]

1 голос
/ 16 октября 2019

Вы можете использовать delete с предложением where:

delete from generic_records
    where date_time < to_char(sysdate - interval '1' day, 'YYYY-MM-DD HH24:MI:SS')

Я бы порекомендовал вам сделать резервную копию стола, прежде чем пытаться сделать это, просто чтобы быть уверенным, что вы не нанесете непоправимый урон.

0 голосов
/ 17 октября 2019

Это было бы моим решением:

delete from GENERIC_RECORDS where to_date(substr(date_time,1,19), 'YYYY-MM-DD HH24:MI:SS') < sysdate;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...