Creative Saplings

PL / SQL – Cursors (Italiano)

Gennaio 30, 2021
No Comments
Annunci

In questo capitolo discuteremo i cursori in PL / SQL. Oracle crea un’area di memoria, nota come area di contesto, per l’elaborazione di un’istruzione SQL, che contiene tutte le informazioni necessarie per l’elaborazione dell’istruzione; ad esempio, il numero di righe elaborate, ecc.

Un cursore è un puntatore a quest’area di contesto. PL / SQL controlla l’area di contesto tramite un cursore. Un cursore contiene le righe (una o più) restituite da un’istruzione SQL. L’insieme di righe che il cursore contiene è indicato come l’insieme attivo.

Puoi nominare un cursore in modo che possa essere indicato in un programma per recuperare ed elaborare le righe restituite dall’istruzione SQL, una Al tempo. Esistono due tipi di cursori:

  • Cursori impliciti
  • Cursori espliciti

Cursori impliciti

Cursori impliciti vengono creati automaticamente da Oracle ogni volta che viene eseguita un’istruzione SQL, quando non è presente un cursore esplicito per l’istruzione. I programmatori non possono controllare i cursori impliciti e le informazioni in esso contenute.

Ogni volta che viene emessa un’istruzione DML (INSERT, UPDATE e DELETE), un cursore implicito viene associato a questa istruzione. Per le operazioni INSERT, il cursore trattiene i dati che devono essere inseriti. Per le operazioni UPDATE e DELETE, il cursore identifica le righe che sarebbero interessate.

In PL / SQL, puoi fare riferimento al cursore implicito più recente come cursore SQL, che ha sempre attributi come% FOUND ,% ISOPEN,% NOTFOUND e% ROWCOUNT. Il cursore SQL ha attributi aggiuntivi,% BULK_ROWCOUNT e% BULK_EXCEPTIONS, progettati per essere utilizzati con l’istruzione FORALL. La tabella seguente fornisce la descrizione degli attributi più utilizzati:

S.No Attributo & Descrizione
1

% FOUND

Restituisce TRUE se un’istruzione INSERT, UPDATE o DELETE ha interessato una o più righe o un’istruzione SELECT INTO ha restituito una o più righe. In caso contrario, restituisce FALSE.

2

% NOTFOUND

L’opposto logico di% FOUND. Restituisce TRUE se un’istruzione INSERT, UPDATE o DELETE non ha interessato alcuna riga o un’istruzione SELECT INTO non ha restituito alcuna riga. In caso contrario, restituisce FALSE.

3

% ISOPEN

Restituisce sempre FALSE per i cursori impliciti, perché Oracle chiude automaticamente il cursore SQL dopo aver eseguito l’istruzione SQL associata.

4

% ROWCOUNT

Restituisce il numero di righe interessate da un’istruzione INSERT, UPDATE o DELETE o restituite da un’istruzione SELECT INTO.

Si accederà a qualsiasi attributo di cursore SQL come sql% nome_attributo come mostrato di seguito nell’esempio.

Esempio

Useremo la tabella CLIENTI che abbiamo creato e utilizzato nei capitoli precedenti.

Il seguente programma aggiornerà la tabella e aumenterà lo stipendio di ogni cliente di 500 e utilizzerà la% SQL Attributo ROWCOUNT per determinare il numero di righe interessate –

Quando il codice precedente viene eseguito al prompt SQL, produce il seguente risultato –

6 customers selected PL/SQL procedure successfully completed. 

Se controlli i record nella tabella dei clienti, scoprirai che le righe sono state aggiornate –

Cursori espliciti

I cursori espliciti sono cursori definiti dal programmatore per ottenere un maggiore controllo su l’area contesto. Un cursore esplicito dovrebbe essere definito nella sezione dichiarazione del blocco PL / SQL. Viene creato su un’istruzione SELECT che restituisce più di una riga.

La sintassi per la creazione di un cursore esplicito è –

CURSOR cursor_name IS select_statement; 

Funzionante con un cursore esplicito include i seguenti passaggi:

  • Dichiarazione del cursore per inizializzare la memoria
  • Apertura del cursore per allocare la memoria
  • Recupero del cursore per recuperare i dati
  • Chiudere il cursore per liberare la memoria allocata

Dichiarazione del cursore

La dichiarazione del cursore definisce il cursore con un nome e l’istruzione SELECT associata. Ad esempio:

CURSOR c_customers IS SELECT id, name, address FROM customers; 

Apertura del cursore

L’apertura del cursore alloca la memoria per il cursore e lo rende pronto per il recupero delle righe restituite dall’istruzione SQL in esso. Ad esempio, apriremo il cursore sopra definito come segue:

OPEN c_customers; 

Recupero del cursore

Il recupero del cursore implica l’accesso a una riga in un tempo. Ad esempio, recupereremo le righe dal cursore sopra aperto come segue:

FETCH c_customers INTO c_id, c_name, c_addr; 

Chiudere il cursore

Chiudere il cursore significa rilasciare la memoria allocata.Ad esempio, chiuderemo il cursore sopra aperto come segue:

CLOSE c_customers;

Esempio

Di seguito è riportato un esempio completo per illustrare i concetti di cursori espliciti & minua;

Quando il codice precedente viene eseguito al prompt SQL, produce il seguente risultato –

1 Ramesh Ahmedabad 2 Khilan Delhi 3 kaushik Kota 4 Chaitali Mumbai 5 Hardik Bhopal 6 Komal MP PL/SQL procedure successfully completed. 
Pubblicità

Articles
Previous Post

Ciclo di Sustanon 250

Next Post

Quanti dati utilizza Netflix - come controllarli e usarne di meno

Lascia un commento Annulla risposta

Articoli recenti

  • Best Photography Schools In The World, 2020
  • I cittadini sovrani portano la loro filosofia antigovernativa sulle strade
  • Guida ai costi di riparazione dello stucco
  • Muckrakers (Italiano)
  • Oncologia di precisione

Archivi

  • Febbraio 2021
  • Gennaio 2021
  • Dicembre 2020
  • Novembre 2020
  • Ottobre 2020
  • Settembre 2020
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어
Proudly powered by WordPress | Theme: Fmi by Forrss.