Ricerca…


Sintassi

  1. CICLO CONTINUO
  2. [Istruzioni];
  3. USCIRE QUANDO [condizione per il ciclo di uscita];
  4. FINE LOOP;

Ciclo semplice

DECLARE
v_counter NUMBER(2);

BEGIN
  v_counter := 0;
  LOOP
    v_counter := v_counter + 1;
    dbms_output.put_line('Line number' || v_counter);
    
    EXIT WHEN v_counter = 10;
  END LOOP;
END;

MENTRE Ciclo

Il ciclo WHILE viene eseguito fino a quando non viene soddisfatta la condizione di fine. Semplice esempio:

DECLARE
v_counter NUMBER(2); --declaration of counter variable

BEGIN
  v_counter := 0; --point of start, first value of our iteration
 
  WHILE v_counter < 10 LOOP --exit condition
    
    dbms_output.put_line('Current iteration of loop is ' || v_counter); --show current iteration number in dbms script output
    v_counter := v_counter + 1; --incrementation of counter value, very important step

  END LOOP; --end of loop declaration
END;

Questo ciclo verrà eseguito fino a quando il valore corrente della variabile v_counter sarà inferiore a dieci.

Il risultato:

Current iteration of loop is 0
Current iteration of loop is 1
Current iteration of loop is 2
Current iteration of loop is 3
Current iteration of loop is 4
Current iteration of loop is 5
Current iteration of loop is 6
Current iteration of loop is 7
Current iteration of loop is 8
Current iteration of loop is 9

La cosa più importante è che il nostro ciclo inizia con il valore "0", quindi la prima riga dei risultati è "L'iterazione corrente del ciclo è 0".

PER Loop

Loop FOR funziona su regole simili a quelle di altri loop. Il ciclo FOR viene eseguito il numero esatto di volte e questo numero è noto all'inizio - i limiti inferiore e superiore sono impostati direttamente nel codice. In ogni passaggio di questo esempio, il ciclo aumenta di 1.

Semplice esempio:

DECLARE
v_counter NUMBER(2); --declaration of counter variable

BEGIN
  v_counter := 0; --point of start, first value of our iteration, execute of variable
 
  FOR v_counter IN 1..10 LOOP --The point, where lower and upper point of loop statement is declared - in this example, loop will be executed 10 times, start with value of 1
    
    dbms_output.put_line('Current iteration of loop is ' || v_counter); --show current iteration number in dbms script output
   
  END LOOP; --end of loop declaration
END;

E il risultato è:

Current iteration of loop is 1
Current iteration of loop is 2
Current iteration of loop is 3
Current iteration of loop is 4
Current iteration of loop is 5
Current iteration of loop is 6
Current iteration of loop is 7
Current iteration of loop is 8
Current iteration of loop is 9
Current iteration of loop is 10

Loop FOR ha proprietà aggiuntive, che funzionano in senso inverso. L'utilizzo di una parola aggiuntiva 'REVERSE' nella dichiarazione del limite inferiore e superiore del ciclo consente di farlo. Ogni esecuzione del valore di decremento del loop di v_counter di 1.

Esempio:

DECLARE
v_counter NUMBER(2); --declaration of counter variable

BEGIN
  v_counter := 0; --point of start
 
  FOR v_counter IN REVERSE 1..10 LOOP
    
    dbms_output.put_line('Current iteration of loop is ' || v_counter); --show current iteration number in dbms script output
   
  END LOOP; --end of loop declaration
END;

E il risultato:

Current iteration of loop is 10
Current iteration of loop is 9
Current iteration of loop is 8
Current iteration of loop is 7
Current iteration of loop is 6
Current iteration of loop is 5
Current iteration of loop is 4
Current iteration of loop is 3
Current iteration of loop is 2
Current iteration of loop is 1


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow