Oracle
 sql >> Database >  >> RDS >> Oracle

Aggiunta di molte funzioni di convalida (UDF) a Oracle:il metodo più veloce

La funzione standalone può essere molto più veloce se la si imposta su DETERMINISTIC e se i dati sono altamente ripetitivi. Sulla mia macchina questa impostazione ha ridotto il tempo di esecuzione da 9 secondi a 0,1 secondi. Per motivi che non capisco che l'impostazione non migliora le prestazioni della funzione oggetto.

create or replace function isValid2(v in varchar2, format in varchar2)
return valObj
deterministic --<< Hit the turbo button!
is
  test number;
begin
if format = 'number' then
    begin
        test := to_number(v);
        return valObj(1,null);
        exception when VALUE_ERROR then return valObj(0,'Invalid number. Valid formats are: 12345, 12345.67, -12345, etc...');
    end;
end if;
end;
/