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

Erfassungsmethode:COUNT-Funktion in der Oracle-Datenbank

Ich habe im vorherigen Tutorial erwähnt, dass es 7 Sammelfunktionen gibt. Unter diesen sieben Sammlungsfunktionen ist COUNT ( ) die erste, die wir in diesem Tutorial untersuchen werden. Wenn Sie diese Serie von PL/SQL-Erfassungen verfolgen, müssen Sie bereits auf diese Erfassungsfunktion gestoßen sein. Aber ab heute haben wir diesem Thema einen ganzen Blog gewidmet, also nehmen wir uns die Freiheit und untersuchen die Sammelmethode COUNT ( ) im Detail.

Was ist die Erfassungsmethode COUNT ( )?

Die Sammlungsmethode COUNT ( ) gibt die Anzahl der Elemente in einer initialisierten Sammlung zurück. Bei Verwendung mit einer Initialize-Sammlung ohne Elemente; es gibt Null zurück.

Verwirrt! Warum bezeichnen wir Erhebungsfunktionen und -verfahren als Erhebungsverfahren? Lesen Sie Einführung in Erfassungsmethoden, um die Antwort zu finden.

Wann gibt die Erfassungsmethode COUNT ( ) Null zurück?

Die Sammlungsmethode COUNT ( ) gibt Null zurück, wenn sie angewendet wird oder beispielsweise mit einer initialisierten Sammlung (d. h. VARRAYs und verschachtelte Tabellen) ohne Elemente verwendet wird. Es gibt auch Null als Ergebnis zurück, wenn es mit einem leeren zugeordneten Array verwendet wird.

Signatur der Erfassungsmethode COUNT ( )?

Die Signatur der Funktion COUNT ist –

FUNCTION COUNT RETURN PLS_INTEGER;

Empfohlene Lektüre:PL/SQL-Funktionen

Funktioniert die Sammlungsmethode COUNT ( ) genauso mit einer verschachtelten Tabelle?

Nein. Dies liegt daran, dass COUNT ( ) die Anzahl der nicht leeren Elemente in einer verschachtelten Tabelle zurückgibt, da es möglich ist, dass eine verschachtelte Sammlungstabelle einzelne Elemente enthält, die leer sind.

Warum zum Teufel erhalte ich den Fehler „Collection_IS_NULL“?

Es scheint, als würden Sie COUNT () mit einer nicht initialisierten Sammlung verwenden. Immer wenn Sie die Sammlungsfunktion COUNT ( ) auf eine nicht initialisierte Sammlung (d. h. verschachtelte Tabellen und VARRAYs) anwenden, wird die Ausnahme ‘Collection_Is_Null’ ausgelöst, die eine vordefinierte Ausnahme in Oracle Database ist.

Da assoziative Arrays keine Initialisierung erfordern, erhalten Sie diese Ausnahme bei ihnen nicht. Hier können Sie mehr über assoziative Arrays lesen.

Beispiele für die Erfassungsmethode COUNT ( )

Beispiel 1:Gesamtzahl der in einer verschachtelten Tabelle gespeicherten Elemente berechnen.

Sie können die Funktion COUNT ( ) verwenden, um die Gesamtzahl der Elemente zu berechnen, die in einer Sammlung wie einer verschachtelten Tabelle gespeichert sind.

SET SERVEROUTPUT ON;
DECLARE
    TYPE my_nested_table IS TABLE OF number;
    var_nt my_nested_table := my_nested_table (9,18,27,36,45,54,63,72,81,90);
BEGIN
    DBMS_OUTPUT.PUT_LINE ('The Size of the Nested Table is ' ||var_nt.count);
END;
/

Fortfahren; Kopieren Sie den obigen Code und fügen Sie ihn in Ihre IDE ein und sehen Sie sich das Ergebnis an.

Beispiel 2. COUNT ( )-Funktion mit IF-Bedingung

Sie können die Funktion ZÄHLEN ( ) verwenden, um den Ablauf des Programms mithilfe einer Bedingung zu steuern. Lassen Sie uns also ein sehr einfaches Programm schreiben, das demonstriert, wie die Sammlungsmethode COUNT ( ) mit IF Condition verwendet wird.

SET SERVEROUTPUT ON;
DECLARE
    TYPE my_nested_table IS TABLE OF number;
    var_nt my_nested_table := my_nested_table (9,18,27,36,45,54,63,72,81,90);
BEGIN
    IF var_nt.count >= 10 THEN
        DBMS_OUTPUT.PUT_LINE (‘you have already inserted 10 elements in your Nested table.');
        DBMS_OUTPUT.PUT_LINE ('Are you sure you want to insert more?');
    END IF;
END;
/

Ebenso können Sie die Sammelmethode COUNT ( ) mit Loops verwenden. Sie können sich das PL/SQL-Tutorial zum gleichen Thema ansehen, um dies zu lernen. Das Video finden Sie hier.

Das ist eine sehr einfache Demonstration. Ich bin sicher, Ihnen fallen ein paar verrücktere Beispiele ein. Worauf warten Sie also noch, schreiben Sie Ihren Code und sehen Sie, auf welche andere Weise Sie diese Methode verwenden können.

Wenn Sie möchten, dass ich Ihren Code überprüfe, können Sie Ihren Code mit mir auf meiner Facebook-Seite oder auch auf meinem Twitter teilen.

Wie gefällt Ihnen dieser Blog? Gibt es etwas, das wir verbessern sollen? Sagen Sie uns auf unserer Facebook-Seite und auf unserem Twitter, was Sie denken.

Vielen Dank und einen schönen Tag!