Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 对于具有2个迭代器变量的循环_Oracle_Plsql - Fatal编程技术网

Oracle 对于具有2个迭代器变量的循环

Oracle 对于具有2个迭代器变量的循环,oracle,plsql,Oracle,Plsql,我需要对带有2个变量的循环进行迭代。我搜索过这样的东西: DECLARE counter INT; max INT; ... FOR counter IN REVERSE 1..10, max IN 1..5 LOOP -- some code END LOOP; 但找不到任何参考资料。有这样的事吗 编辑: 我试图颠倒数组元素的顺序: DECLARE TYPE IntArray IS VARRAY(80) OF INT; -- array of 80 ints myArray In

我需要对带有2个变量的循环进行迭代。我搜索过这样的东西:

DECLARE
counter INT;
max INT;

...

FOR counter IN REVERSE 1..10, max IN 1..5 LOOP
    -- some code
END LOOP;
但找不到任何参考资料。有这样的事吗

编辑: 我试图颠倒数组元素的顺序:

DECLARE
TYPE IntArray IS VARRAY(80) OF INT; -- array of 80 ints
myArray IntArray;
counter INT; -- counter variable 1
max_limit INT; -- counter variable 2
tmp INT; 

BEGIN
myArray := IntArray();
max_limit := 20;
myArray.EXTEND(max_limit);

-- I want to do something like this:
FOR counter IN 1..10, max_limit IN REVERSE 10..20 LOOP
    -- reverse elements
END LOOP;

END;

您需要一个循环,其中一个变量减少,而另一个(循环计数器)增加,每个循环的速率相同(基于您的注释)。您不需要将这两个变量都作为循环本身的一部分(而且无论如何也不能这样做),但由于它们是相关的,您可以从另一个变量中计算一个:

FOR counter IN 1..10 LOOP
    tmp := max_value - counter;
    -- reverse elements
END LOOP;
或直接递减:

FOR counter IN 1..10 LOOP
    max_value := max_counter - 1;
    -- reverse elements
END LOOP;

您还没有显示要反转的数组,并且不确定为什么两个变量的偏移量似乎为10-您是否计划将现有变量的反转添加到数组的末尾,而不是替换它?不过,在这两种情况下,您都不需要第二个变量。

您需要一个循环,其中一个变量减少,而另一个(循环计数器)增加,每个循环的速率相同(根据您的注释)。您不需要将这两个变量都作为循环本身的一部分(而且无论如何也不能这样做),但由于它们是相关的,您可以从另一个变量中计算一个:

FOR counter IN 1..10 LOOP
    tmp := max_value - counter;
    -- reverse elements
END LOOP;
或直接递减:

FOR counter IN 1..10 LOOP
    max_value := max_counter - 1;
    -- reverse elements
END LOOP;

您还没有显示要反转的数组,并且不确定为什么两个变量的偏移量似乎为10-您是否计划将现有变量的反转添加到数组的末尾,而不是替换它?不过,在这两种情况下都不需要第二个变量。

根据for循环的语法,我不确定是否可以在单个循环中有两个索引


根据for循环的语法,我不确定在单个循环中是否可以有两个索引


您希望它循环多少次-5、10、50或其他?如何在循环中使用变量?也许你可以编辑这个问题来解释你到底想做什么。@AlexPoole我会更新我的问题,谢谢你的提醒。你希望它循环多少次-5、10、50或其他?如何在循环中使用变量?也许你可以编辑这个问题来解释你实际上想做什么。@AlexPoole我会更新我的问题,谢谢你的提醒。你不需要两个变量作为循环本身的一部分(而且无论如何也不能这样做)。你只是总结了我需要的所有答案;谢谢您不需要将这两个变量都作为循环本身的一部分(而且无论如何也不能这样做)。你只是总结了我需要的所有答案;谢谢感谢schemaThanks提供的模式