Не совсем то, что вы просили, но стоит упомянуть: вы можете писать лучше, то есть более идиоматически PL / SQL, например:
создать или заменить
procedure date_report (start_date timestamp , end_date timestamp )
is
cursor cursor_audit is select audit_id, audit_action, audit_user, audit_date
from customer_audit
where audit_date between start_date and end_date
;
begin
for rec in cursor_audit
loop
dbms_output.put_line('User : '||rec.audit_user ||', ID :' ||rec.audit_id||', Action: '
|| rec.audit_action||', Date : ' ||rec.audit_date );
end loop;
end;
или даже
procedure date_report (start_date timestamp , end_date timestamp )
is
begin
for rec in (select audit_id, audit_action, audit_user, audit_date
from customer_audit
where audit_date between start_date and end_date)
loop
dbms_output.put_line('User : '||rec.audit_user ||', ID :' ||rec.audit_id||', Action: '
|| rec.audit_action||', Date : ' ||rec.audit_date );
end loop;
end;
Возможной причиной вашей проблемы является то, что вы выбираете, например, С 09-16-2010 по 09-16-2010, что означает 09-16-2010 с 00:00 до 09-16-2010 00:00:00. Чтобы найти все строки с 16-16-2010, вы должны явно указать время (или просто добавить 1 к конечной дате, что в большинстве случаев достаточно)