satu kemungkinan adalah bahwa in_year tidak diteruskan oleh Crystal atau diteruskan sebagai NULL.
mohon verifikasi ini. Anda dapat menambahkan kode ini sebagai pemeriksaan cepat:
if (trim(in_year) is null) or length(in_year != 4))
then
raise_application_error(-20000, 'year is invalid: ' || in_year);
end if;
inv_date := to_date('31-01-' || in_year || ' 23:59:59', 'DD-MM-YYYY HH24:MI:SS');
kesalahan apa yang dilemparkan?
seolah-olah tahun itu nol, kami akan mendapatkan kesalahan itu:
SQL> declare
2 inv_date DATE;
3 in_year varchar2(42) ;
4 begin
5 inv_date := to_date('31-01-' || in_year || ' 23:59:59', 'DD-MM-YYYY HH24:MI:SS');
6 end;
7 /
declare
*
ERROR at line 1:
ORA-01850: hour must be between 0 and 23
ORA-06512: at line 5