PLS-00306:调用“DELETE”时参数的数量或类型错误
create or replace PACKAGE BODY MYPACKAGE AS
PROCEDURE LeaveDates4
(
I_STDATE IN DATE,
I_ENDDATE IN DATE,
O_DATES OUT DateArray
)
AS
n INTEGER := LEAST( I_ENDDATE - I_STDATE, 29 );
just_date DATE;
H_dates DateArray;
--cursor cur_holidates is select HOLIDAY_DATE from TSL_HOLIDAYLIST;
x number;
BEGIN
select count(*) into x from TSL_HOLIDAYLIST;
O_DATES := DateArray();
H_dates := DateArray();
O_DATES.EXTEND( n + 1 );
-- h_dates.extend;
dbms_output.put_line(n);
dbms_output.put_line(x);
FOR i IN 0 .. n LOOP
O_DATES(i+1) := I_STDATE + i;
dbms_output.put_line(I_STDATE + i);
END LOOP;
for cur in (select HOLIDAY_DATE from TSL_HOLIDAYLIST)
loop
h_dates.extend;
h_dates(h_dates.last):= cur.HOLIDAY_DATE;
end loop;
FOR i IN h_DATES.first..h_DATES.last LOOP
dbms_output.put_line(h_DATES(i)||i);
END LOOP;
for i in O_DATES.first..O_DATES.last LOOP
FOR j IN h_DATES.first..h_DATES.last LOOP
if o_dates(i)=h_dates(j)
then o_dates.delete(i); -- PLS-00306 error here
end if;
end loop;
end loop;
END LeaveDates4;
END MYPACKAGE;
上面的代码失败并出现错误,o_dates.delete(i);
如果它存在于 h_dates 中,我想从 o_dates 中删除日期。我得到的错误是:
PLS-00306: wrong number or types of arguments in call to 'DELETE'