Verweis auf nicht initialisierte Sammlung PL / SQL

8

Ich erhalte ORA-06531: Reference to uninitialized collection , wenn ich eine Speicherprozedur mit den folgenden Details führe:

Benutzerdefinierter Datentyp:

%Vor%

Gespeicherte Prozedurdefinition:

%Vor%

Ich verwende Folgendes, um die Prozedur aufzurufen:

%Vor%

Bitte helfen Sie mir hier draußen. Danke im Voraus.

    
rohit_agarwal 08.08.2014, 10:55
quelle

2 Antworten

11

In Ihrer TEST-Prozedur haben Sie v als OUT-Parameter deklariert - das bedeutet, dass die Prozedur die Ausgabesammlung in der Prozedur initialisieren muss (z. B. v := T(); ). Selbst wenn Sie den aufrufenden Block ändern, um u_t zu initialisieren, wird dies nicht helfen, da die u_t -Auflistung nicht an die Prozedur übergeben wird - sie empfängt nur, was die Prozedur zurückgibt.

Ändern Sie Ihren Code wie folgt:

%Vor%

Bitte beachten Sie, dass String-Konstanten in PL / SQL in einfache Anführungszeichen gesetzt werden müssen, nicht in Anführungszeichen.

Auch - die Verwendung ähnlicher Variablennamen, die entgegengesetzte Bedeutungen in der Prozedur und dem aufrufenden Block haben, trägt nur zur Verwirrung bei. Gewöhnen Sie sich an, aussagekräftige Namen zu verwenden, und Sie ersparen sich später viel Verwirrung.

Teilen und genießen.

    
Bob Jarvis 08.08.2014, 11:32
quelle
0

Ich hatte heute eine ähnliche Frage, Sie müssen Ihre Variable u_t initialisieren, überprüfen Sie diese Antwort, um mehr zu erhalten

    
zaratustra 08.08.2014 11:06
quelle

Tags und Links