Oracle - Как написать простую процедуру PL / SQL - PullRequest
0 голосов
/ 17 декабря 2011

Мне нужно создать таблицу с сессиями. Новые пользователи, которые успешно прошли аутентификацию, будут добавлены в таблицу. Каждый раз, когда пользователи открывают страницы, пользователь будет проверяться в этой таблице. Поэтому я хочу использовать процедуру PL / SQL, которая будет выполняться каждую минуту и ​​удалять сеансы старше 30 минут, чтобы сбросить сеансы «смерти».

Или, может быть, выполнение DELETE FROM "Dates" WHERE "Date" < SYSDATE - 1/48; каждый раз при перезагрузке страницы будет более оптимизированным решением?

Ответы [ 3 ]

3 голосов
/ 17 декабря 2011
delete 
from table
where date_column < sysdate - 30/1440;

1 - день

1/1440 - минута

30/1440 равняется 30 минутам

1 голос
/ 17 декабря 2011

Вам не нужна процедура, чтобы сделать это.Достаточно простого запроса на удаление.

DELETE FROM "Dates" WHERE "Date" < SYSDATE - 1/48;

Если вам необходима процедура, вам нужно заключить этот запрос в proc.

0 голосов
/ 17 декабря 2011

SQL

delete from mytable
  where mytable.datefield < sysdate - .02083333333333333333;
commit;

.02083333333333333333 - это 1800/86400, что составляет 30 минут в секундах / секундах в день

Если вы пишете триггер или хранимую процедуру, вы используете PL/ SQL.Пожалуйста, уточните немного больше.

...