У меня перед глазами такой кусок кода:
FOR row IN 1..l_RowSet(1).count
LOOP
l_a_variable := l_RowSet(1)(row);
END LOOP;
l_RowSet
относится к типу ApEx--apex_plugin_util.t_column_value_list
--определяется таким образом:
type t_column_value_list is table of wwv_flow_global.vc_arr2 index by pls_integer;
где wwv_flow_global.vc_arr2
определяется как
type vc_arr2 is table of varchar2(32767) index by binary_integer;
vc_arr2
передается обратно в мой код из функции apex_plugin_util.get_data
. vc _arr2 индексируется по номеру столбца , а не по строке.
Насколько я могу понять, это означает, что данные эффективно хранятся в двумерном массиве, индексированном по столбцу, а затем по строке.
Будет ли индексироваться оператор LOOP с нуля или с единицы? Потому что мне кажется, что я должен иметь возможность сделать этот LOOP избыточным, т.е.:
l_a_variable := l_RowSet(1)(1);
Но мне нужно было бы заранее знать, давать ли 0 или 1 в качестве начальной строки.
Я не могу найти четкий ответ в документации Oracle (, что неудивительно, «индекс» — довольно широко -используемый термин ), и просмотр SO также не показывает никого другого с таким же вопросом.