加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle PL / SQL阵列是从0还是从1开始索引?

发布时间:2020-12-12 13:08:53 所属栏目:百科 来源:网络整理
导读:我面前有一段这样的代码: 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_a
我面前有一段这样的代码:
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由列号索引,而不是按行索引.

最好的我可以看出这意味着数据有效地存储在2D数组中,按列然后按行索引.

使用LOOP语句时,是从零还是从一个索引?因为在我看来我应该能够使LOOP多余,即:

l_a_variable := l_RowSet(1)(1);

但我需要提前知道是否将0或1作为初始行.

我无法在Oracle文档中找到一个明确的答案(不出所料,“索引”是一个相当广泛使用的术语),并且通过SO查看并不会向任何其他人显示相同的问题.

关联数组不一定是密集的.索引0处可能有一个元素,索引为-1时可能有一个元素,索引1处可能有一个元素.或者索引17,42和127处可能有元素.您发布的代码表示关联数组很密集,索引从1开始.

在apex_plugin_util.get_data的特定情况下,集合应该是密集的并且应该从1开始.如果循环实际上没有执行除您发布的内容以外的任何操作,则可以通过获取l_RowSet(1)的最后一个元素来替换它,即

l_a_variable := l_RowSet(1)(l_RowSet(1).count);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读