declare
a date;
begin
select holidaydate into a from holiday where holidaydate = sysdate;
dbms_output.put_line(a);
end;
Но это, вероятно, даст вам новую ошибку (данные не найдены), потому что, вероятно, нет записи, в которой Sysdate введен в Holidaydate, поскольку sysdate также включает время.
Так попробуйте это:
declare
a date;
begin
select
(select holidaydate from holiday where holidaydate = trunc(sysdate))
into a
from dual;
dbms_output.put_line(a);
end;
Это отрезает часть времени, проверяя целые даты. Если в вашей таблице также есть целые даты, это, скорее всего, даст результат. Если нет, то выбор из двойного захватит это и заставит a
вернуть NULL.
Единственная ошибка, которую вы можете получить сейчас, это когда несколько записей содержат одну и ту же дату.