Ich habe vor mir ein Stück Code wie folgt:
%Vor% l_RowSet
ist ein ApEx-Typ - apex_plugin_util.t_column_value_list
- definiert also:
wobei wwv_flow_global.vc_arr2
als
Das vc_arr2
wird von der Funktion apex_plugin_util.get_data
an meinen Code zurückgegeben. Vc_arr2 wird durch die Spalte column und nicht durch die Zeile indiziert.
Wie ich am besten feststellen kann, bedeutet dies, dass die Daten effektiv in einem 2D-Array gespeichert werden, indiziert nach Spalten und dann nach Zeilen.
Wird bei Verwendung der LOOP-Anweisung von null oder von eins indiziert? Weil es mir scheint, dass ich in der Lage sein sollte, diese LOOP überflüssig zu machen, dh:
%Vor%Aber ich muss im Voraus wissen, ob ich 0 oder 1 als erste Zeile geben soll.
Ich kann keine klare Antwort in den Oracle-Dokumenten finden (nicht überraschend, "Index" ist ein ziemlich weit verbreiteter Begriff) und ein Blick durch SO zeigt niemandem mit der gleichen Frage auch nicht.
Ein assoziatives Array ist nicht notwendigerweise dicht. Es kann ein Element bei Index 0 geben, ein Element bei Index -1, ein Element bei Index 1. Oder Sie haben Elemente bei den Indizes 17, 42 und 127. Der Code, den Sie gepostet haben, impliziert das assoziative Array ist dicht und die Indizes beginnen bei 1.
Im speziellen Fall von apex_plugin_util.get_data
sollte die Sammlung dicht sein und bei 1 beginnen. Wenn die Schleife tatsächlich nichts anderes als das tut, was Sie gepostet haben, können Sie sie ersetzen, indem Sie das letzte Element von l_RowSet(1)
holen. dh
Tags und Links oracle plsql oracle-apex