PL/SQL Cursor FOR LOOP (Italiano)

0 Comments

Sommario: in questo tutorial, imparerai come usare l’istruzione PL/SQL cursor FOR LOOP per recuperare ed elaborare ogni record da un cursore.

Introduzione all’istruzione PL/SQL cursor FOR LOOP

L’istruzione cursorFOR LOOP è un’elegante estensione dell’istruzione numericFOR LOOP.

Il numericoFOR LOOP esegue il corpo di un ciclo una volta per ogni valore intero in un intervallo specificato., Allo stesso modo, il cursore FOR LOOP esegue il corpo del ciclo una volta per ogni riga restituita dalla query associata al cursore.

Una bella caratteristica del cursoreFOR LOOP istruzione è che permette di recuperare ogni riga da un cursore senza gestire manualmente il ciclo di esecuzione cioè, OPEN, FETCH, e CLOSE.

Il cursoreFOR LOOP crea implicitamente il suo indice di loop come variabile record con il tipo di riga in cui il cursore ritorna e quindi apre il cursore.,

In ogni iterazione del ciclo, l’istruzione cursorFOR LOOP recupera una riga dal set di risultati nel suo indice di ciclo. Se non c’è alcuna riga da recuperare, il cursore FOR LOOP chiude il cursore.

Il cursore viene chiuso anche se un’istruzione all’interno del ciclo trasferisce il controllo all’esterno del ciclo, ad esempio EXITe GOTO, o genera un’eccezione.,

di seguito viene illustrata La sintassi del cursore FOR LOOP dichiarazione:

1) record

record è il nome dell’indice che il cursore FOR LOOP dichiarazione, dichiara implicitamente come un %ROWTYPE variabile di record del tipo di cursore.

La variabile record è locale al cursore FOR LOOP istruzione. Significa che puoi fare riferimento solo all’interno del ciclo, non all’esterno., Al termine dell’esecuzione dell’istruzione

del cursoreFOR LOOP, la variabilerecord diventa indefinita.

2) cursor_name

cursor_name è il nome di un cursore esplicito che non viene aperto all’avvio del ciclo.

Si noti che oltre al nome del cursore, è possibile utilizzare un’istruzioneSELECT come mostrato di seguito:

In questo caso, il cursoreFOR LOOP dichiara, apre, recupera e chiude un cursore implicito., Tuttavia, il cursore implicito è interno; pertanto, non è possibile fare riferimento ad esso.

Si noti che Oracle Database ottimizza automaticamente un cursoreFOR LOOP per funzionare in modo simile a una queryBULK COLLECT. Sebbene il codice appaia come se recuperasse una riga alla volta, Oracle Database recupera più righe alla volta e consente di elaborare ciascuna riga individualmente.

PL/SQL cursor FOR LOOP examples

Diamo un’occhiata ad alcuni esempi di utilizzo del cursoreFOR LOOP per vedere come funziona.,

A) PL/SQL cursor FOR LOOP example

Il seguente esempio dichiara un cursore esplicito e lo utilizza nell’istruzione cursorFOR LOOP.

In questo esempio, l’istruzioneSELECTdel cursore recupera i dati dalla tabellaproducts. L’istruzioneFOR LOOP ha aperto, recuperato ogni riga nel set di risultati, visualizzato le informazioni sul prodotto e chiuso il cursore.,

B) Cursore PER LOOP con un’istruzione SELECT esempio

Il seguente esempio è equivalente all’esempio precedente ma utilizza una query in un’istruzione cursorFOR LOOP.

In questo tutorial, hai imparato come usare il cursore PL/SQL FOR LOOP per recuperare i dati da un cursore.

  • Questo tutorial è stato utile?


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *