То, насколько легко решить данную задачу , зависит от архитектуры конкретного приложения и среды его выполнения.
Каждый ухищряется по-своему : самодельные заглушки, перевод системного времени и т.д. и т.п..
На случай , если Ваше приложение работает с СУБД Oracle, то наверняка при этом использует функцию sysdate этой самой СУБД (если , конечно, вы не изобрели свой "велосипед").
sysdate возвращает текущее дату-время на сервере, где запущен данный инстанс Oracle.
Создатели Oracle пошли на встречу разработчикам и тестировщикам , реализовав возможность активации режима, при котором sysdate будет возвращать фиксированную дату до тех пор, пока этот режим не будет деактивирован.
Вот как заставить sysdate возвращать фиксированную дату:
ALTER SYSTEM SET fixed_date = '2011-12-31 23:59:59';
А вот так все можно "вернуть вернуть на место":
ALTER SYSTEM SET fixed_date=NONE
Плюсы:
1. легко включается и отключается
2. не влияет на системное время ОС
Минусы:
Условный минус по сути вижу один - это особенность, на которую не все сразу обращают внимание:
Данный трюк работает на уровне "системы" , а не "сессии" и меняет поведение sysdate для всего инстанса. Соответственно, необходимо не забывать "возвращать на место" и вообще отдавать себе в этом отчет, если это инстанс может одновременно использоваться несколькими пользователями.
Комментариев нет:
Отправить комментарий