Chức năng độc lập có thể nhanh hơn nhiều nếu bạn đặt nó thành DETERMINISTIC và nếu dữ liệu có tính lặp lại cao. Trên máy của tôi, cài đặt này đã giảm thời gian chạy từ 9 giây xuống 0,1 giây. Vì lý do, tôi không hiểu rằng cài đặt không cải thiện hiệu suất của chức năng đối tượng.
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;
/