Tôi có trước mặt tôi một đoạn mã như thế này:Các mảng Oracle PL/SQL có được lập chỉ mục từ 0 hoặc từ 1 không?
FOR row IN 1..l_RowSet(1).count
LOOP
l_a_variable := l_RowSet(1)(row);
END LOOP;
l_RowSet
là một loại Apex - apex_plugin_util.t_column_value_list
- được định nghĩa như sau:
type t_column_value_list is table of wwv_flow_global.vc_arr2 index by pls_integer;
nơi wwv_flow_global.vc_arr2
được định nghĩa là
type vc_arr2 is table of varchar2(32767) index by binary_integer;
vc_arr2
được chuyển lại mã của tôi từ hàm apex_plugin_util.get_data
. Số vc_arr2 được lập chỉ mục bởi số cột, không phải theo hàng.
Tốt nhất là tôi có thể tạo ra điều này có nghĩa là dữ liệu được lưu trữ hiệu quả trong một mảng 2D, được lập chỉ mục theo cột và sau đó theo hàng.
Khi sử dụng câu lệnh LOOP, điều này có được lập chỉ mục từ 0 hoặc từ một không? Bởi vì có vẻ như với tôi rằng tôi nên để có thể làm cho điều đó LOOP không cần thiết, ví dụ:
l_a_variable := l_RowSet(1)(1);
Nhưng tôi cần phải biết trước liệu để cung cấp cho 0 hoặc 1 như hàng ban đầu.
Tôi không thể tìm thấy câu trả lời rõ ràng trong tài liệu của Oracle (không ngạc nhiên, "chỉ mục" là cụm từ được sử dụng rộng rãi) và xem qua SO không hiển thị bất kỳ ai khác có cùng câu hỏi.
Cảm ơn. Tôi đã cập nhật câu hỏi để giải thích rõ hơn về những gì get_data làm. Nó * là * một bộ sưu tập 2D, theo cột rồi hàng. Cho rằng các mảng PL/SQL có thể thưa thớt, tôi sẽ cần phải khai thác thêm một số để xem những gì nó trả lại cho tôi "sống". –
@JacquesChester - 'apex_plugin_util.get_data' trả về một tập hợp kiểu' t_column_value_list' là mảng đa chiều. Đã cập nhật câu hỏi và xóa cuộc thảo luận 1D/2D khỏi câu trả lời của tôi. –