Brak prawdziwych wad, o których mogę pomyśleć. Myślę, że byłoby nieco jaśniejsze, gdyby zmienne robocze zostały zadeklarowane jako instancje podtypu, np.:
DECLARE
subtype t_int is INTERVAL DAY (4) TO SECOND(0);
v_int t_int;
FUNCTION hhmm_to_interval return t_int IS
v_hhmm t_int;
BEGIN
v_hhmm := to_dsinterval('PT9999H');
RETURN v_hhmm;
END hhmm_to_interval;
BEGIN
v_int := hhmm_to_interval;
DBMS_OUTPUT.PUT_LINE('v_int=' || v_int);
end;
Dziel się i ciesz.