Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Erfassungsmethode:LIMIT-Funktion in der Oracle-Datenbank

Im heutigen PL/SQL-Tutorial dreht sich alles um die Erfassungsmethode LIMIT. Wir haben bereits 4 Funktionen in dieser Sammlungsmethodenserie gesehen, nämlich – Count, Exists, First und Last. Limit ist die fünfte Funktion, die wir heute lernen werden.

Was ist die Erfassungsmethode LIMIT?

Die Sammlungsmethode LIMIT, die eigentlich eine PL/SQL-Funktion ist, gibt die maximale Anzahl von Elementen zurück, die ein VARRAY enthalten kann. Das bedeutet, dass Sie mit dieser Funktion herausfinden können, wie viele Elemente Sie in einem VARRAY speichern können.

Was gibt die Erfassungsmethode LIMIT zurück?

Die Erfassungsmethode LIMIT gibt einen Wert vom Typ PLS_INTEGER zurück?

Funktioniert diese Funktion auch mit anderen zwei Sammlungen verschachtelter Tabellen und assoziativen Arrays?

Die Erfassungsmethode LIMIT funktioniert nur mit VARRAY. Wenn es auf eine verschachtelte Tabelle oder ein assoziatives Array angewendet wird, gibt diese Funktion entweder einen NULL- oder einen Nein-Wert zurück. Die Antwort lautet also:Nein, die Sammlungsfunktion LIMIT funktioniert nicht mit verschachtelten Tabellen und assoziativen Arrays.

Was ist die Spezifikation der Sammlungsfunktion LIMIT?

Die Spezifikation der Sammelfunktion LIMIT lautet:

FUNCTION LIMIT RETURN pls_integer;

Löst die Sammlungsfunktion LIMIT eine Ausnahme aus? Wenn ja, wann dann?

Ja, die Funktion LIMIT löst die Ausnahme COLLECTION_IS_NULL aus, wenn sie auf eine nicht initialisierte verschachtelte Tabelle oder ein VARRAY angewendet wird.

Können Sie uns ein Beispiel zeigen, wie man die Funktion LIMIT verwendet?

Sicher warum nicht. Hier ist ein sehr einfaches Beispiel, das demonstriert, wie man die Sammlungsfunktion LIMIT mit VARRAYs richtig verwendet.

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;
/
ermitteln

Haben wir nicht die Funktion ZÄHLEN, die die gleiche Information liefert?

Die Sammlungsfunktion LIMIT gibt die Gesamtzahl der Indizes eines VARRAY zurück unabhängig davon, ob diese Indizes leer sind oder einige Daten enthalten . Es überprüft die Definition des VARRAY und sieht die Gesamtzahl der Elemente, die es speichern soll, und gibt diese Zahl zurück.

Während die Sammelfunktion COUNT die Anzahl der Indexe zurückgibt, die nicht leer sind und einige Daten enthalten .

Schauen Sie sich dieses PL/SQL-Programm an. Dies wird Ihnen helfen, den Unterschied zwischen der Erfassungsmethode COUNT und LIMIT besser zu verstehen.

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;
/

Im obigen Code haben wir ein VARRAY, das 5 Elemente des Datentyps NUMBER enthalten kann. Im Ausführungsabschnitt haben wir zwei DBMS-Ausgabeanweisungen. Die erste Ausgabeanweisung, die das Ergebnis der LIMIT-Funktion anzeigt, gibt 5 zurück, da dies die Gesamtstärke unseres VARRAY ist, während die zweite Ausgabeanweisung 1 zurückgibt, da es unter diesen 5 Indizes nur einen Index gibt, in dem einige Daten gespeichert sind.

Sie sagten in dem Video, dass Sie uns zeigen werden, wie wir die Gesamtzahl der ungenutzten Elemente ermitteln können, damit wir Daten mithilfe der Erfassungsmethode LIMIT in einem Varray speichern können?

Ist das so? Habe ich das gesagt? Ich mache nur Spaß.

Es ist sehr einfach, die Anzahl der freien Indexe für Ihre Verwendung in einem VARRAY herauszufinden. Lassen Sie mich Ihnen sagen, wie.

Wie ich oben sagte, gibt die Sammlungsfunktion COUNT die Anzahl der Indizes zurück, in denen Daten gespeichert sind, und die Sammlungsfunktion LIMIT gibt die Gesamtzahl der Indizes zurück, die ein VARRAY aufnehmen kann.

Wenn Sie das Ergebnis der count-Funktion vom Ergebnis der LIMIT-Funktion subtrahieren, erhalten Sie die Gesamtzahl der Elemente, die nicht verwendet werden, damit Sie Daten in einem varray speichern können. Zum Beispiel

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;
/

Das ist das PL/SQL-Tutorial, das alle Fragen beantwortet, die Sie in der Zertifizierungsprüfung sowie in Ihrem Interview über die Erfassungsmethode LIMIT in der Oracle-Datenbank erwarten können.

Gibt es etwas, das ich vergessen habe, in diesem Tutorial zu behandeln oder zu erwähnen? Wenn ja, dann lassen Sie es mich bitte. Schreiben Sie mir auf meinem Twitter oder Facebook.

Danke, schönen Tag noch.