哪位老大能帮我看看这个存储过程,在游标这老报错
create or replace procedure srbz_qf_fx_test_p(the_month in varchar2 )
as
v_sqlstring varchar2(4000);
time_begin date;
time_end date;
over_time number;
sql_cnt number;
n_System_Error Number; ---oracle错误编号
avc_err_text varchar2(2000); ---oracle错误描述
oper_table number;
cur_month varchar2(6);
temp_month varchar2(6);
loop_number number;
begin select to_number(months_between(to_date(''||the_month||'','YYYYMM'),to_date('200806','YYYYMM'))+1) into loop_number
from dual;v_sqlstring :=
'create table srbz_month_flag_t
(
ACCT_MONTH CHAR(6)
)';
execute immediate v_sqlstring;
commit;for i in 0..loop_number loop
temp_month := null;
select substr(to_char(add_months(to_date(''||the_month||'','yyyymm'),-(loop_number - i)),'yyyyMMdd HH24:mi:ss'),1,6) into temp_month from dual;
v_sqlstring :=
'insert into srbz_month_flag_t
select temp_month from dual';
execute immediate v_sqlstring;
commit;
end loop;CURSOR CUR_SEQ IS select acct_month
from srbz_month_flag_t;select sysdate into time_begin from dual;end srbz_qf_fx_test_p;先谢谢啦
create or replace procedure srbz_qf_fx_test_p(the_month in varchar2 )
as
v_sqlstring varchar2(4000);
time_begin date;
time_end date;
over_time number;
sql_cnt number;
n_System_Error Number; ---oracle错误编号
avc_err_text varchar2(2000); ---oracle错误描述
oper_table number;
cur_month varchar2(6);
temp_month varchar2(6);
loop_number number;
begin select to_number(months_between(to_date(''||the_month||'','YYYYMM'),to_date('200806','YYYYMM'))+1) into loop_number
from dual;v_sqlstring :=
'create table srbz_month_flag_t
(
ACCT_MONTH CHAR(6)
)';
execute immediate v_sqlstring;
commit;for i in 0..loop_number loop
temp_month := null;
select substr(to_char(add_months(to_date(''||the_month||'','yyyymm'),-(loop_number - i)),'yyyyMMdd HH24:mi:ss'),1,6) into temp_month from dual;
v_sqlstring :=
'insert into srbz_month_flag_t
select temp_month from dual';
execute immediate v_sqlstring;
commit;
end loop;CURSOR CUR_SEQ IS select acct_month
from srbz_month_flag_t;select sysdate into time_begin from dual;end srbz_qf_fx_test_p;先谢谢啦
from srbz_month_flag_t; select sysdate into time_begin from dual; 这个地方错了,可以ref cursorv_cur sys_refcursor;
begin
...
open v_cur for 'select acc_month from srbz_month_flag_t';
..
end;