我正在研究Oracle Forms应用程序。我有一个名为DOB
的字段,其日期格式为08-May-1890
。我想在18900508
触发器上将其转换为WHEN-VALIDATE-ITEM
进行比较。
我对此很陌生,不知道从哪里开始。以下是我目前正在使用的代码。
BEGIN
--Convert date from 08-May-1890 to 1890508
IF( TO_CHAR(:EMPLOYEE.DOB,'YYYY-MON-DD') < 20180927)THEN
--Do Something in here
RAISE FORM_TRIGGER_FAILURE;
END IF;
END;
如果employee.dob是字符串,则将其转换为date,然后转换为string,并且比较值必须是字符串:
BEGIN
--Convert date from 08-May-1890 to 1890508
IF( TO_CHAR(TO_DATE(:EMPLOYEE.DOB,'YYYYMONDD', 'NLS_DATE_LANGUAGE = English'),'YYYYMMDD') < '20180927' )THEN
--Do Something in here
RAISE FORM_TRIGGER_FAILURE;
END IF;
END;
如果employee.dob已经是日期,并且与字符串进行比较:
BEGIN
--Convert date from 08-May-1890 to 1890508
IF( TO_CHAR(:EMPLOYEE.DOB,'YYYYMMDD') < '20180927' )THEN
--Do Something in here
RAISE FORM_TRIGGER_FAILURE;
END IF;
END;
但是,如果employee.dob是日期列,则不要将其转换为字符串,而是将其与日期进行比较
BEGIN
--Convert date from 08-May-1890 to 1890508
IF :EMPLOYEE.DOB < to_date('20180927','YYYYMMDD') )THEN
--Do Something in here
RAISE FORM_TRIGGER_FAILURE;
END IF;
END;