create or replace procedure p_getdate
(
i_date IN date,
o_date1 OUT varchar2,
o_date2 OUT varchar2
)
as
v_year varchar2(10);
v_mont varchar2(10);
begin
v_year := to_char(i_date,'yyyy');
v_mont := to_char(i_date,'mm');
o_date1 := v_year || v_mont || '01';
if
(to_char(i_date,'mm') = '12')
then
o_date2 := v_year + 1 || '0101';
else
o_date1 := v_year || (v_mont + 1) || '01';
end if;
end;
(
i_date IN date,
o_date1 OUT varchar2,
o_date2 OUT varchar2
)
as
v_year varchar2(10);
v_mont varchar2(10);
begin
v_year := to_char(i_date,'yyyy');
v_mont := to_char(i_date,'mm');
o_date1 := v_year || v_mont || '01';
if
(to_char(i_date,'mm') = '12')
then
o_date2 := v_year + 1 || '0101';
else
o_date1 := v_year || (v_mont + 1) || '01';
end if;
end;
(
p_date IN varchar2,
p_sdate OUT varchar2,
p_edate OUT varchar2
)as
begin
select to_char(to_date(&cdate,'yyyymm'),'yyyymmdd') into p_sdate,
to_char(add_months(to_date(&cdate,'yyyymm'),1),'yyyymmdd') into p_edate
from dual;
end;
create or replace procedure p_getdate
(
p_date IN varchar2,
p_sdate OUT varchar2,
p_edate OUT varchar2
)as
begin
select to_char(to_date(&cdate,'yyyymm'),'yyyymmdd'),
to_char(add_months(to_date(&cdate,'yyyymm'),1),'yyyymmdd') into p_sdate,p_edate
from dual;
end;
(
i_date IN varchar2,
o_date1 OUT varchar2,
o_date2 OUT varchar2
)
as
begin
o_date1 := i_date||'01';
o_date2 := to_char(to_date(i_date,'yyyymm') + 32,'yyyymm')||'01';
end;
create or replace procedure p_getdate
(
p_date IN varchar2,
p_sdate OUT varchar2,
p_edate OUT varchar2
)as
begin
select to_char(to_date(p_date,'yyyymm'),'yyyymmdd'),
to_char(add_months(to_date(p_date,'yyyymm'),1),'yyyymmdd') into p_sdate,p_edate
from dual; ------p_date 替换原来的输入变量&cdate
end;
我通过执行你的过程怎么老出错
提示:调用 'P_GETDATE' 时参数个数或类型错误