в plsql я видел какое-то использование цикла без определения индекса цикла, почему? как? - PullRequest
0 голосов
/ 22 июля 2009

в plsql, я видел какое-то одно использование для цикла без определения индекса цикла, и база данных может работать правильно. но я не могу найти описание этого синтаксиса в документации оракула. кто-нибудь может это объяснить? большое спасибо!

следующий код является примером, обратите внимание: inner_c не определено:

declare
    v_current_nr NUMBER;
begin
    v_current_nr:=0;

    loop
        for inner_c in 1..4
        loop
            DBMS_OUTPUT.put_line(v_current_nr);
        end loop;

        v_current_nr:=v_current_nr+5;
        exit when v_current_nr>25;
    end loop;
end;

Ответы [ 2 ]

3 голосов
/ 22 июля 2009

inner_c используется в качестве дескриптора / переменной для цикла. Если вы его DBMS_OUTPUT, вы увидите, что в этом случае он прошел через цифры 1 - 4.

Это неявно объявлено как часть механизма цикла. Когда цикл закончится, он выпадет из области видимости.

0 голосов
/ 22 июля 2009

Что именно вы подразумеваете под "индексом цикла"?

Вы можете иметь: For i in 1..5 который дает мне значения от 1 до 5

Но вы также можете иметь:

For record in myCursor Loop
  record.myField
End Loop

Который будет возвращать каждый раз строку курсора. Может быть, вы можете привести пример того, что вы видели?

http://www.techonthenet.com/oracle/loops/for_loop.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...