ثابت نگه داشتن مقدار sysdate

گاهی ممکن است برای انجام دادن تستی در اوراکل، نیاز باشد تا برای مدتی تابع sysdate مقدار ثابتی را برگرداند برای این منظور می توان از پارامتر fixed_date استفاده کرد.
این پارامتر که مقدار پیش فرض ان برابر با none می باشد، با فرمتی که برای پارامتر NLS_DATE_FORMAT تعیین شده است، مقدار می گیرد.


فرمت پیش فرض به صورت زیر می باشد:

alter system set fixed_date=[YYYY-MM-DD-HH24:MI:SS]

مثال:

ALTER SYSTEM SET FIXED_DATE=’2018-01-01-12:05:24′;

با اجرای دستور بالا، sysdate همواره مقدار ثابتی را برمی گرداند ولی مقادیر برگشتی SYSTIMESTAMP و CURRENT_DATE کماکان تاریخ و ساعت واقعی سیستم را نشان خواهند داد:

select sysdate,CURRENT_DATE,SYSTIMESTAMP from dual;
SYSDATE      CURRENT_D                   SYSTIMESTAMP
———-          ———-                    ——————————————
19-APR-18    19-APR-18            19-APR-18 10.54.13.513698 AM -04:00

برای برگرداندن این تنظیمات، می توان مجددا این پارامتر را به مقدار none تغییر داد:

ALTER SYSTEM SET FIXED_DATE=NONE;

دیدگاهتان را بنویسید