PHP code: SQL> declare 2 ln number; 3 ld1 date; 4 ld2 date; 5 ls varchar2(8); 6 lt number := dbms_utility.get_time; 7 ex exception; 8 i number; 9 j number; 10 begin 11 ld1 := to_date('20080101', 'yyyymmdd'); 12 i := 0; 13 loop 14 exit when i > 800; 15 j := -2400; 16 loop 17 exit when j > 2400; 18 if to_char(ld1 + i,'dd')= '02' then 19 i := i + 25; 20 end if; 21 if to_char(add_months(ld1 + i, j), 'yyyymmdd') <> 22 nvl(my_add_months(to_char(ld1 + i, 'yyyymmdd'), j), '*') then 23 dbms_output.put_line('Sorry: stop at p_date_string=' || 24 to_char(ld1 + i, 'yyyymmdd') || ',p_months=' || j); 25 raise ex; 26 end if; 27 j := j + 1; 28 end loop; 29 i := i + 1; 30 end loop; 31 ln := 0; 32 for c in (select text 33 from user_source 34 where name = 'MY_ADD_MONTHS' 35 and type = 'FUNCTION') loop 36 ln := ln + nvl(lengthb(translate(c.text, 37 '*' || chr(9) || chr(10) || chr(13) || 38 chr(32), 39 '*')), 40 0); 41 end loop; 42 lt := (dbms_utility.get_time - lt) / 100; 43 dbms_output.put_line('Congratulation ... Code Length: ' || ln || 44 ' Bytes. Times: ' || 45 to_char(to_date(to_char(lt, 'fm00000'), 'sssss'), 46 'hh24:mi:ss')); 47 exception 48 when ex then 49 null; 50 end; 51 / Congratulation ... Code Length: 676 Bytes. Times: 00:00:13 PL/SQL 过程已成功完成。 .
SQL> declare 2 ln number; 3 ld1 date; 4 ld2 date; 5 ls varchar2(8); 6 lt number := dbms_utility.get_time; 7 ex exception; 8 i number; 9 j number; 10 begin 11 ld1 := to_date('20080101', 'yyyymmdd'); 12 i := 0; 13 loop 14 exit when i > 800; 15 j := -2400; 16 loop 17 exit when j > 2400; 18 if to_char(ld1 + i,'dd')= '02' then 19 i := i + 25; 20 end if; 21 if to_char(add_months(ld1 + i, j), 'yyyymmdd') <> 22 nvl(my_add_months(to_char(ld1 + i, 'yyyymmdd'), j), '*') then 23 dbms_output.put_line('Sorry: stop at p_date_string=' || 24 to_char(ld1 + i, 'yyyymmdd') || ',p_months=' || j); 25 raise ex; 26 end if; 27 j := j + 1; 28 end loop; 29 i := i + 1; 30 end loop; 31 ln := 0; 32 for c in (select text 33 from user_source 34 where name = 'MY_ADD_MONTHS' 35 and type = 'FUNCTION') loop 36 ln := ln + nvl(lengthb(translate(c.text, 37 '*' || chr(9) || chr(10) || chr(13) || 38 chr(32), 39 '*')), 40 0); 41 end loop; 42 lt := (dbms_utility.get_time - lt) / 100; 43 dbms_output.put_line('Congratulation ... Code Length: ' || ln || 44 ' Bytes. Times: ' || 45 to_char(to_date(to_char(lt, 'fm00000'), 'sssss'), 46 'hh24:mi:ss')); 47 exception 48 when ex then 49 null; 50 end; 51 / Congratulation ... Code Length: 676 Bytes. Times: 00:00:13 PL/SQL 过程已成功完成。 .