Introduzione alle raccolte PL / SQL

Innanzitutto, come altri linguaggi di programmazione moderni, PL / SQL offre anche la possibilità ai programmatori di utilizzare raccolte PL / SQL. Quindi, in termini generali, la raccolta è una struttura di dati con un gruppo ordinato di elementi dello stesso tipo di dati e questi elementi sono accessibili tramite indici in base ai requisiti specifici. Le raccolte comunemente utilizzate nella maggior parte dei linguaggi di programmazione sono Array, Set, Elenco e Coda, ecc.

La raccolta PL / SQL offre molti vantaggi sia al programmatore che all'utente durante la memorizzazione e l'accesso ai dati di tipi di dati simili in un'applicazione. Quando è necessario elaborare i dati contemporaneamente o gestire una grande quantità di dati, le raccolte PL / SQL sono molto utili. Riduce inoltre le dimensioni e la velocità di elaborazione durante la memorizzazione dei dati e l'accesso agli elementi. È possibile accedere facilmente agli elementi nelle raccolte tramite loop e indici. A differenza delle matrici in altri linguaggi di programmazione, PL / SQL supporta solo raccolte monodimensionali e i dati nelle raccolte sono identificati dai pedici (chiamati anche indice in altri linguaggi). Ogni elemento è accessibile ed elaborato tramite questo indice univoco.

Tipi di raccolte PL / SQL

Le raccolte PL / SQL sono di 3 tipi riportate di seguito con sintassi:

Tabelle nidificate

Una tabella nidificata è una raccolta PL / SQL in cui la dimensione non è fissa. Quindi, è come un array monodimensionale, tranne per il fatto che la dimensione è fissa negli array e può essere densa e sparsa in entrambi. Il programmatore deve estendere la memoria ogni volta prima di usarla usando EXTEND Subscript nella tabella nidificata inizia con un numero intero '1'.

Le tabelle nidificate rientrano nelle raccolte persistenti PL / SQL, il che significa che possono essere riutilizzate ulteriormente come archiviate nel database. Il programmatore può anche eliminare un elemento array e rendere la tabella sparsa, il che significa che le tabelle nidificate possono essere sia dense che sparse. Le tabelle nidificate possono essere dichiarate all'interno del blocco PL / SQL oa livello di schema.

Poiché non vi sono limiti alle dimensioni superiori nelle tabelle nidificate, rientrano nella categoria di raccolte PL / SQL illimitate.

Sintassi:

TYPE typ_name IS table of element_data_type;
Table_name typ_name;

Matrici o VARRAY di dimensioni variabili

VARRAY è la raccolta PL / SQL in cui è fissata la dimensione della raccolta come definito nella sua definizione, quindi i VARRAY sono chiamati limitati Gli elementi nelle matrici vengono popolati in sequenza a partire dal pedice 1. A differenza delle tabelle nidificate, le matrici offrono meno flessibilità in quanto sono dense solo. Quindi il programmatore non può cancellare alcun elemento tra, o viene cancellata l'intera variante o può essere ritagliata dalla fine. È necessario accedere ai varray e memorizzarli in sequenza. Può essere definito all'interno del blocco PL / SQL o a livello di schema. Come le tabelle nidificate, i varray rientrano nella categoria di raccolte persistenti, in modo che possano essere riutilizzate e archiviate nel database.

Sintassi:

TYPE typ_name IS VARRAY OF element_data_type;

Matrici associative

Come suggerisce il nome, le matrici associative vengono utilizzate per contenere i valori in coppie chiave-valore. La chiave utilizzata può essere una stringa o un tipo intero. Gli array associativi sono anche chiamati tabella Index-by. Questa raccolta può essere densa o sparsa. Negli array associativi, la dimensione dell'array non è fissa all'inizio e il programmatore non deve inizializzarli prima di utilizzarlo. Un array associativo rientra nella categoria di raccolte non persistenti, il che significa che non sono archiviate nel database e non possono essere riutilizzate, pertanto sono definite all'interno del blocco PL / SQL e utilizzate solo in quella particolare sessione. Questi array rientrano nella categoria di raccolte illimitate.

Sintassi:

TYPE typ_name IS TABLE OF element_data_type;

Metodi di raccolta

PL / SQL fornisce alcuni metodi predefiniti per semplificare il lavoro con le raccolte. Alcuni dei metodi sono riportati di seguito:

S.No.Nome metodoDescrizione
1.CONTARERestituisce il numero di elementi presenti nella raccolta
2.PRIMORestituisce il più piccolo (primo) numero indice nella raccolta per i numeri interi interi
3.ULTIMORestituisce il più grande (ultimo) numero di indice nella raccolta per i pedici interi.
4.ESISTE (n)Viene utilizzato per verificare se un particolare elemento è presente nella raccolta o meno. Restituisce VERO se l'ennesimo elemento è presente nella raccolta, FALSO in caso contrario.
5.PRIMA (n)Restituisce il numero di indice che è il predecessore dell'indice (n) fornito dall'utente nella raccolta.
6.NEXT (n)Restituisce il numero di indice che è il successore dell'indice (n) fornito dall'utente nella raccolta.
7.TRIMViene utilizzato per rimuovere elementi dalla raccolta. TRIM rimuove l'ultimo elemento dalla raccolta e TRIM (n) rimuove l'ultimo n elemento dalla fine della raccolta.
8.ELIMINAÈ usato per rimuovere tutti gli elementi dalla raccolta data. Imposta il conteggio delle raccolte su 0 dopo aver rimosso tutti gli elementi
9.DELETE (m, n)Viene utilizzato nel caso di matrici associative e tabelle indicizzate per rimuovere tutti gli elementi nell'intervallo da m a n. Restituisce null se m è maggiore di n.
10.LIMITEViene utilizzato per verificare la dimensione massima della raccolta.

Eccezioni di raccolta

Di seguito sono riportate alcune delle eccezioni più probabili che si verificano quando si lavora con le raccolte.

Nome eccezioneUno scenario in cui si verificano eccezioni
NESSUN DATO TROVATOUn'eccezione sorge quando un pedice che fa riferimento a un elemento che viene eliminato e non esiste più.
VALUE_ERRORL'eccezione si verifica quando il valore delle colonne che tentano di accedere non è convertibile nel tipo di chiave o quando un pedice è nullo
COLLECTION_IS_NULLSi verificano eccezioni nel lavorare su una raccolta automaticamente nulla
SUBSCRIPT_BEYOND_CO UNTUn'eccezione sorge quando un pedice supera il conteggio massimo di un numero di elementi nella raccolta.
SUBSCRIPT_OUTSIDE_LIM ITL'eccezione sorge quando si tenta di fare riferimento utilizzando il numero indice che è al di fuori dell'intervallo legale.
TOO_MANY_ROWSUn'eccezione sorge quando un'istruzione SELECT in restituisce più di 1 riga.

Vantaggi delle raccolte in PL / SQL

Di seguito sono riportati alcuni dei vantaggi delle raccolte PL / SQL:

  • Inoltre, uno dei maggiori vantaggi delle raccolte è che migliora le prestazioni del sistema memorizzando nella cache i dati statici a cui è necessario accedere regolarmente.
  • Soprattutto, le raccolte sono utili mentre si lavora con un set di dati di grandi dimensioni con lo stesso tipo di dati su cui l'utente deve eseguire più operazioni DML.
  • Usando una variabile di raccolta possiamo ridurre il numero multiplo di variabili utilizzate per memorizzare valori diversi e quindi salvare la memoria.
  • L'esecuzione di diverse operazioni come la memorizzazione e l'elaborazione dei dati diventa facile attraverso i metodi di raccolta PL / SQL già forniti.

Conclusione

Attraverso la descrizione sopra, potresti avere un'idea di cosa sia la raccolta PL / SQL e dei metodi che possono essere usati nelle raccolte PL / SQL. Prima di utilizzare qualsiasi tipo di raccolta PL / SQL nel programma, lo sviluppatore deve riflettere profondamente sullo scenario prima di scegliere qualsiasi tipo. Sebbene lavorare in raccolte PL / SQL non sia difficile, ma possono sorgere alcune eccezioni in punti diversi di cui il programmatore deve essere consapevole e che sa come gestirli.

Articoli consigliati

Questa è una guida alle raccolte PL / SQL. Qui discutiamo la sintassi, i tipi, i metodi e le eccezioni delle raccolte PL / SQL insieme ai vantaggi. Puoi anche consultare i seguenti articoli per saperne di più -

  1. Cursori in PL / SQL
  2. Dichiarazione CASE in PL / SQL
  3. Domande di intervista Oracle PL / SQL
  4. Comandi PL / SQL