Oracle
 sql >> Database >  >> RDS >> Oracle

Metodo di raccolta:funzione LIMIT nel database Oracle

L'esercitazione PL/SQL di oggi è incentrata sul metodo di raccolta LIMIT. Abbiamo già visto 4 funzioni in questa serie di metodi di raccolta che sono:Conteggio, Esiste, Primo e Ultimo. Il limite è la quinta funzione che impareremo oggi.

Che cos'è il LIMITE del metodo di raccolta?

Il metodo di raccolta LIMIT, che in realtà è una funzione PL/SQL, restituisce il numero massimo di elementi che può contenere un VARRAY. Ciò significa che utilizzando questa funzione puoi scoprire quanti elementi puoi memorizzare in un VARRAY.

Cosa restituisce il metodo di raccolta LIMIT?

Il metodo di raccolta LIMIT restituisce un valore di tipo PLS_INTEGER?

Questa funzione funziona anche con altre due raccolte Nested Tables e Associative Array?

Il metodo di raccolta LIMIT funziona solo con VARRAY. Se si applica alla tabella nidificata o all'array associativo, questa funzione restituirà un valore NULL o Nessun valore. Quindi la risposta è No, la funzione di raccolta LIMIT non funziona con le tabelle nidificate e gli array associativi.

Qual ​​è la specifica della funzione di raccolta LIMIT?

La specifica della funzione di raccolta LIMIT è:

FUNCTION LIMIT RETURN pls_integer;

La funzione di raccolta LIMIT solleva eccezioni? Se sì, quando?

Sì, la funzione LIMIT solleva un'eccezione COLLECTION_IS_NULL se viene applicata a una tabella nidificata non inizializzata oa un VARRAY.

Puoi mostrarci un esempio di come utilizzare la funzione LIMITE?

Certo, perché no. Ecco un esempio molto semplice che mostra come utilizzare correttamente la funzione di raccolta LIMIT con VARRAY.

SET SERVEROUTPUT ON;
DECLARE
    TYPE inBlock_vry IS VARRAY (5) OF NUMBER;
    vry_obj inBlock_vry := inBlock_vry();
BEGIN
 --Let's find out total number of indexes in the above VARRAY
    DBMS_OUTPUT.PUT_LINE ('Total Indexes '||vry_obj.LIMIT);
END;
/

Non abbiamo la funzione COUNT che fornisce le stesse informazioni?

La funzione di raccolta LIMIT restituisce il numero totale di indici di un VARRAY indipendentemente dal fatto che questi indici siano vuoti o contengano alcuni dati . Controlla la definizione del VARRAY e vede il numero totale di elementi che è progettato per memorizzare e restituisce quel numero.

Mentre la funzione di raccolta COUNT restituisce il numero di indici che sono non vuoti e contenere alcuni dati .

Dai un'occhiata a questo programma PL/SQL. Questo ti aiuterà a capire più chiaramente la differenza tra il metodo di raccolta COUNT e LIMIT.

SET SERVEROUTPUT ON;
DECLARE
    --Create VARRAY of 5 element
    TYPE inblock_vry IS
        VARRAY ( 5 ) OF NUMBER;
    vry_obj   inblock_vry := inblock_vry ();
BEGIN
    --Insert into VARRAY
    	vry_obj.extend;
    	vry_obj(1) := 10 * 2; 
dbms_output.put_line('Total Number of Index ' || vry_obj.limit);
dbms_output.put_line('Total Number of Index which are occupied ' || vry_obj.count);
END;
/

Nel codice sopra abbiamo un VARRAY che è in grado di contenere 5 elementi di tipo di dati NUMBER. Nella sezione di esecuzione abbiamo due istruzioni di output DBMS. La prima istruzione di output che mostra il risultato della funzione LIMIT restituirà 5 perché questa è la forza totale del nostro VARRAY mentre la seconda istruzione di output restituirà 1 perché tra questi 5 indici c'è solo un indice che ha alcuni dati memorizzati in esso.

Nel video hai detto che ci mostrerai come scoprire il numero totale di elementi lasciati inutilizzati per memorizzare i dati in un varray utilizzando il metodo di raccolta LIMIT?

È così? L'ho detto? Sto solo scherzando.

Scoprire il numero di indice vacante per il tuo utilizzo in un VARRAY è molto semplice. Lascia che ti dica come.

Come ho detto sopra, la funzione di raccolta COUNT restituisce il numero di indici che contengono dati archiviati e la funzione di raccolta LIMIT restituisce il numero totale di indici che un VARRAY può ospitare.

Se sottrai il risultato della funzione di conteggio dal risultato della funzione LIMIT, otterrai il numero totale di elementi lasciati inutilizzati per memorizzare i dati in un varray. Ad esempio

DECLARE
    --Create VARRAY of 5 element
    TYPE inblock_vry IS
        VARRAY ( 5 ) OF NUMBER;
    vry_obj   inblock_vry := inblock_vry ();
BEGIN
    --Insert into VARRAY
    vry_obj.extend;
    vry_obj(1) := 10 * 2;
    dbms_output.put_line('Total Number of Index ' || vry_obj.limit);
    dbms_output.put_line('Total Number of Index which are occupied ' || vry_obj.count);
    dbms_output.put_line('Total Number of Vacant index left for use '
                            || (vry_obj.limit - vry_obj.count) );
END;
/

Questo è il tutorial PL/SQL che risponde a tutte le domande che puoi aspettarti nell'esame di certificazione e nella tua intervista sul metodo di raccolta LIMIT nel database Oracle.

C'è qualcosa che ho dimenticato di coprire o menzionare in questo tutorial? Se sì, allora per favore fatemelo. Scrivimi sul mio Twitter o Facebook.

Grazie, buona giornata.