SQL>
SQL> exec dbms_profiler.start_profiler( 'factorial iterative' )
BEGIN dbms_profiler.start_profiler( 'factorial iterative' ); END;
SQL>
SQL> create or replace
2 function fact_iterative( n int ) return number
3 as
4 l_result number default 1;
5 begin
6 for i in 2 .. n
7 loop
8 l_result := l_result * i;
9 end loop;
10 return l_result;
11 end;
12 /
Function created.
SQL>
SQL> begin
2 for i in 1 .. 50 loop
3 dbms_output.put_line( fact_iterative(50) );
4 end loop;
5 end;
6 /
30414093201713378043612608166064768844300000000000000000000000000
PL/SQL procedure successfully completed.
SQL>
SQL> exec dbms_profiler.stop_profiler
PL/SQL procedure successfully completed.
SQL>