declare
type as_array is table of varchar2(20) index by pls_integer;
v_fname_array as_array;
idx integer;
begin
for x in 100..105
loop
select FIRST_NAME into v_fname_array(x) from EMPLOYEES where EMPLOYEE_ID = x;
end loop;
v_fname_array.delete(2, 5);
idx := v_fname_array.FIRST;
while idx is not null
loop
DBMS_OUTPUT.PUT_LINE(v_fname_array(idx));
idx := v_fname_array.NEXT(idx);
end loop;
end;
即使删除后,输出也是:
Steven
Neena
Lex
Alexander
Bruce
David
在删除前和删除后仍为6
1条答案
按热度按时间iyfamqjs1#
由于您正在加载索引为100到105的元素,因此将
v_fname_array.delete(2, 5);
更改为v_fname_array.delete(101, 104);
。DELETE(m,n)
集合方法“删除索引在m.. n范围内的所有元素,如果m和n都存在且m <= n;否则,它什么也不做。"。