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

Erfassungsmethode:EXTEND-Prozedur in der Oracle-Datenbank

Nach der PL/SQL-Erfassungsmethode DELETE ist die EXTEND-Prozedur in der Oracle-Datenbank die zweite auf der Liste. Wir haben dieses Verfahren immer wieder verwendet, hatten aber nie die Gelegenheit, es im Detail zu untersuchen. Daher habe ich mich entschieden, den ganzen Blog dieser Sammelmethode zu widmen. Lehnen Sie sich also zurück und genießen Sie den Blog.

Wenn Sie neu bei PL/SQL sind und nicht wissen, was Prozeduren sind, dann haben wir ein Tutorial für Sie. Klicken Sie hier und erfahren Sie alles über PL/SQL-Prozeduren in Oracle Database.

Was ist die PL/SQL-Erfassungsmethode EXTEND?

Ähnlich wie DELETE ist die Collection-Methode EXTEND eine überladene PL/SQL-Prozedur, die zum Anhängen von Elementen an die Collection verwendet wird.

Auf wie viele Arten können wir die EXTEND-Prozedur in der Oracle-Datenbank aufrufen?

Die PL/SQL-Erfassungsprozedur ist eine überladene Prozedur. Daher bedeutet dies, dass wir dasselbe Verfahren auf unterschiedliche Weise aufrufen. Diese verschiedenen Möglichkeiten zum Aufrufen der Erfassungsprozedur EXTEND sind –

  1. Erweitern:Prozeduraufruf ohne Argument erweitern.

Beim Aufrufen der PL/SQL-Erfassungsprozedur Extend ohne Argument wird angehängt ein einzelnes NULL-Element zur Sammlung.

  1. Extend (n):Prozeduraufruf um ein Argument erweitern.

Die Sammlungsprozedur Erweitern mit einem Argument hängt die Anzahl der NULL-Elemente an, die Sie als Argument der Prozedur angegeben haben . Denken Sie jedoch daran, dass das Argument ein gültiger Integer-Wert sein muss.

  1. Extend (n, v):Prozeduraufruf mit zwei Argumenten erweitern.

In diesem Fall gibt das erste Argument die Anzahl der Elemente an die an die Sammlung angehängt werden. Außerdem t Das zweite Argument ist die Indexnummer. Außerdem wird sein Wert kopiert und jedem der neu hinzugefügten Elemente der Sammlung zugewiesen. Diese Form von EXTEND ist für Sammlungen mit „Nicht-Null-Elementen“ erforderlich.

Können wir die PL/SQL-Erfassungsmethode EXTEND mit allen drei Arten von Sammlungen verwenden?

Nein, die Erfassungsmethode EXTEND kann nur auf verschachtelte Erfassungstabellen und VARRAYs angewendet werden. Darüber hinaus kann EXTEND nicht mit Sammlungsassoziativen Arrays verwendet werden.

Können Sie uns die Spezifikation des EXTEND-Verfahrens der Erfassungsmethode in der Oracle-Datenbank zeigen?

Sicher warum nicht! Hier sind die überladenen Spezifikationen der PL/SQL-Erfassungsmethode EXTEND —

EXTEND Prozedur mit einem Argument:

PROCEDURE EXTEND (n pls_integer := 1);

Erfassungsmethode EXTEND mit zwei Argumenten:

PROCEDURE EXTEND (n pls_integer, v pls_integer);

Wann sollten wir die Erfassungsmethode EXTEND in unserem Code verwenden?

Wenn Sie eine Sammlung (entweder verschachtelte Tabelle oder VARRAY) in Ihrem Code haben, die nicht mit einer ausreichenden Anzahl von Elementen initialisiert ist. In diesem Fall müssen Sie zuerst die PL/SQL-Erfassungsmethode EXTEND.

verwenden

Was ist die Anforderung an die PL/SQL-Erfassungsmethode EXTEND?

Deklarieren, Definieren und Initialisieren sind die drei Schritte, die wir bei der Arbeit mit der Sammlung in Oracle Database durchlaufen müssen. Aber bevor wir die Daten in den Index speichern, müssen wir einen Speicherplatz dafür erstellen. Folglich hilft uns die PL/SQL-Erfassungsprozedur EXTEND beim Erstellen dieses Speicherslots für diese Daten.

Was ist, wenn wir das Ende der Sammlung gelöscht oder gekürzt haben?

In diesem Fall überspringt die PL/SQL-Auflistungsmethode EXTEND die gelöschten Elemente, wenn sie einen neuen Index zuweist.

Was ist, wenn ich die Erfassungsmethode EXTEND auf eine nicht initialisierte verschachtelte Tabelle oder VARRAY anwende?

Wenn die PL/SQL-Erfassungsmethode EXTEND auf eine nicht initialisierte Sammlung angewendet wird, wird ein COLLECTION_IS_NULL angezeigt Ausnahme.

Und was ist, wenn ich versuche, ein VARRAY über seine definierte Grenze hinaus zu ERWEITERN?

Wenn die Erfassungsmethode EXTEND mit VARRAY verwendet wird, um sie über ihre definierte Grenze hinaus zu erweitern, müssen Sie mit einer weiteren Ausnahme konfrontiert werden, nämlich SUBSCRIPT_BEYOND_LIMIT.

Hey, Manish! Werden wir jemals ein Beispiel für diese Erfassungsmethode EXTEND sehen?

Ja, wir werden auf jeden Fall die oben erwähnten EXTEND-Aufrufe der PL/SQL-Erfassungsprozedur demonstrieren. Zusätzlich zum Extend Procedure Call mit VARRAY.

1. PL/SQL-Erfassungsprozedur EXTEND ohne Argument.

SET SERVEROUTPUT ON;
DECLARE
    TYPE my_nestedTable IS TABLE OF number;
    nt_obj  my_nestedTable := my_nestedTable();
BEGIN
    nt_obj.EXTEND;
    nt_obj(1) := 10;
    DBMS_OUTPUT.PUT_LINE ('Data at index 1 is '||nt_obj(1));
END;
/

2. Erfassungsverfahren EXTEND mit einem Argument.

SET SERVEROUTPUT ON;
DECLARE
    TYPE my_nestedTable IS TABLE OF number;
    nt_obj  my_nestedTable := my_nestedTable();
BEGIN
    nt_obj.EXTEND(3);
    nt_obj(1) := 10;
    nt_obj(2) := 20;
    nt_obj(3) := 30;
    DBMS_OUTPUT.PUT_LINE ('Data at index 1 is '||nt_obj(1));
    DBMS_OUTPUT.PUT_LINE ('Data at index 2 is '||nt_obj(2)); 
    DBMS_OUTPUT.PUT_LINE ('Data at index 3 is '||nt_obj(3));
END;
/

3. PL/SQL-Erfassungsprozedur EXTEND mit zwei Argumenten.

SET SERVEROUTPUT ON;
DECLARE
    TYPE my_nestedTable IS TABLE OF number;
    nt_obj  my_nestedTable := my_nestedTable();
BEGIN
    nt_obj.EXTEND;
    nt_obj(1) := 28;
    DBMS_OUTPUT.PUT_LINE ('Data at index 1 is '||nt_obj(1));
    nt_obj.EXTEND(5,1);
    DBMS_OUTPUT.PUT_LINE ('Data at index 4 is '||nt_obj(4));
END;
/

4. Erfassungsverfahren EXTEND (kein Argument) mit VARRAY

SET SERVEROUTPUT ON;
DECLARE
    TYPE my_Varray IS VARRAY (5) OF NUMBER;
    vry_obj my_Varray := my_Varray();
BEGIN
    vry_obj.EXTEND;
    vry_obj(1) := 10;
    DBMS_OUTPUT.PUT_LINE('Data at index 1 is '||vry_obj(1));
END;
/

Jedes LOC aller oben genannten (mit Ausnahme des 4.) wird im Video-Tutorial auf unserem YouTube-Kanal ausführlich erklärt.

Ich hoffe, wir haben alle möglichen Fragen zur PL/SQL-Erfassungsmethode EXTEND besprochen, denen Sie in Ihrer Oracle db-Zertifizierungsprüfung sowie in Ihrem Vorstellungsgespräch begegnen könnten. Wenn Sie Fragen zu Zertifizierungen haben, können Sie auch in unserem Oracle Database Certification Exam Guide nachschlagen.