pl/sql-entfernen element aus array

Muss ich entfernen element aus dem array. Ich habe versucht, verwenden Sie array.löschen(n) - Funktion, aber es löscht alle Elemente aus id n. Wie löschen Sie einfach die exakte element n ?

Beispielsweise, wenn array 1 2 3 4 5 und n = 3, nach dem löschen sollte es Aussehen wie folgt vor: 1 2 4 5.

Mein code bisher :

DECLARE
  /* declare type array */ 
  TYPE number_index_by_number IS TABLE OF number INDEX BY binary_integer;

  v_n NUMBER := &sv_n;
  v_m NUMBER := &sv_m;
  v_min Number; 
  v_tmp Number;
  v_array number_index_by_number; 
  v_sorted_array number_index_by_number;
begin
  for i in 1..v_n 
  loop
    v_array(i) := dbms_random.value(1,1000);
  end loop;
  for j in v_array.first..v_array.last
  loop
    DBMS_OUTPUT.put_line('v_array('||j||') :'||v_array(j));
  end loop;
  <<i_loop>> for i in 1..v_m
  loop
    /*set first array value to variable min*/
    v_min := v_array(1);
    v_tmp := 1;
    <<j_loop>> for j in v_array.first..v_array.last
    loop
      DBMS_OUTPUT.put_line('v_array('||j||') :'||v_array(j));
      if (v_min > v_array(j)) THEN
        begin
          v_min := v_array(j);
          v_tmp := j;
          DBMS_OUTPUT.put_line(j);
        end;
      end if;
    end loop;
    /*problem is in at this line*/
    v_array.delete(v_tmp);
    v_sorted_array(i) := v_min; 
  end loop;
  for i in v_sorted_array.first..v_sorted_array.last
  loop
    DBMS_OUTPUT.put_line('v_sorted_array('||i||') :'||v_sorted_array(i));
  end loop;
end;
  • welche Symptome haben Sie von v_array gelöscht werden, alle auf einmal?
  • es doesn `t löschen Sie alle auf einmal. Es funktioniert wie zum Beispiel. Wenn deklariertes array ist 1 2 3 4 5 und n = 2, nach dem array.löschen(n) - array enthält nur zwei Elemente. 1 und 2
  • aber es Art von Sinn macht in Bezug zu Ihrem Algorithmus. Die Frage ist, Wann ist es passiert? Ich meine, nur öffnen Sie einen anonymen block, und versuchen Sie es, Sie werden sehen, es funktioniert. Ich denke, dass Ihr Algorithmus ist das problem. docs.oracle.com/cd/B19306_01/appdev.102/b14261/...
InformationsquelleAutor kuldarim | 2013-03-09
Schreibe einen Kommentar