补充说明:SQL> create or replace procedure aa 2 is 3 i integer; 4 j integer; 5 d date; 6 e date; 7 d_start date; 8 d_end date; 9 f varchar(16); 10 begin 11 d_start:=to_date('20080101','yyyymmdd'); 12 d_end:=to_date('20080103','yyyymmdd'); 13 d:=d_start; 14 j:=1; 15 for i in 0..730 loop 16 dbms_output.put_line(i+1); 17 dbms_output.put_line(d+i); 18 e:=to_date(d,'YYYY-MM-DD HH24:MI'); 19 f:=to_char(d); 20 end loop; 21 end; 22 /Procedure created.SQL> exec aa 1 01-JAN-08 BEGIN aa; END;* ERROR at line 1: ORA-01858: a non-numeric character was found where a numeric was expected ORA-06512: at "MEDADM.AA", line 18 ORA-06512: at line 1
create or replace procedure aa is i integer; j integer; d date; e date; d_start date; d_end date; f varchar(16); begin d_start:=to_date('20080101','yyyymmdd'); d_end:=to_date('20080103','yyyymmdd'); d:=d_start; j:=1; for i in 0..730 loop ---dbms_output.put_line(i+1); ---dbms_output.put_line(d+i); e:=to_date(to_char(d,'yyyy-mm-dd')||'00:00','YYYY-MM-DD HH24:MI'); f:=to_char(d,'yyyyy-mm-dd'); end loop; end; / 由于要输出的内容非常的多,导致缓冲区很快就用完了。不使用dbms_output就可以了
2 is
3 i integer;
4 j integer;
5 d date;
6 e date;
7 d_start date;
8 d_end date;
9 f varchar(16);
10 begin
11 d_start:=to_date('20080101','yyyymmdd');
12 d_end:=to_date('20080103','yyyymmdd');
13 d:=d_start;
14 j:=1;
15 for i in 0..730 loop
16 dbms_output.put_line(i+1);
17 dbms_output.put_line(d+i);
18 e:=to_date(d,'YYYY-MM-DD HH24:MI');
19 f:=to_char(d);
20 end loop;
21 end;
22 /Procedure created.SQL> exec aa
1
01-JAN-08
BEGIN aa; END;*
ERROR at line 1:
ORA-01858: a non-numeric character was found where a numeric was expected
ORA-06512: at "MEDADM.AA", line 18
ORA-06512: at line 1
is
i integer;
j integer;
d date;
e date;
d_start date;
d_end date;
f varchar(16);
begin
d_start:=to_date('20080101','yyyymmdd');
d_end:=to_date('20080103','yyyymmdd');
d:=d_start;
j:=1;
for i in 0..730 loop
---dbms_output.put_line(i+1);
---dbms_output.put_line(d+i);
e:=to_date(to_char(d,'yyyy-mm-dd')||'00:00','YYYY-MM-DD HH24:MI');
f:=to_char(d,'yyyyy-mm-dd');
end loop;
end;
/ 由于要输出的内容非常的多,导致缓冲区很快就用完了。不使用dbms_output就可以了
直接e:=d就可以了 都是date类型的。
注: TO_TIMESTAMP(参数时间,'yyyymmddhh24miss,ff3')