我在 PL/SQL 中编写了一个布尔函数,它将日期作为参数,并根据包含假期日期的表检查参数,如果参数在表中,则函数返回 TRUE,否则返回 FALSE。代码如下所示:
CREATE OR REPLACE
FUNCTION isholiday (p_holiday DATE)
RETURN BOOLEAN
IS
CURSOR c_holiday is SELECT holiday_date FROM dbp_holiday;
BEGIN
FOR r1 IN c_holiday
LOOP
IF p_holiday = r1.holiday_date
THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
END loop;
END;
即使我输入了一个有效的假期(例如 to_date('01-01-2013', 'dd-mm-yyy') 它在表中)作为参数,该函数也会返回 false。
该表是 Oracle 表,其名称为 DBP_HOLIDAY,它只有一列类型为 DATE,其名称为 Holiday_date。
请给一些建议。谢谢