oracle 未从PLSQL关联数组中删除元素

nwnhqdif  于 2023-10-16  发布在  Oracle
关注(0)|答案(1)|浏览(114)
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

iyfamqjs

iyfamqjs1#

由于您正在加载索引为100到105的元素,因此将v_fname_array.delete(2, 5);更改为v_fname_array.delete(101, 104);
DELETE(m,n)集合方法“删除索引在m.. n范围内的所有元素,如果m和n都存在且m <= n;否则,它什么也不做。"。

相关问题