Plsql nicht Initialisierte Sammlungen
Habe ich die folgenden Typen definiert in der Spezifikation eines Paketes
type column_info is record (col_name varchar2(20), col_value varchar2(1000));
type c_info is varray(10) of column_info;
type table_info is record (table_name varchar2(20), col_info c_info);
Im Deklarationsteil Paket Körper habe ich
t_info table_info;
Innerhalb einer Prozedur in den Körper des Pakets habe ich
t_info:=null;
t_info.table_name:='gl_temp_report1';
t_info.col_info(1).col_name:='table_idx';
t_info.col_info.extend;
t_info.col_info(2).col_name:='table_row';
t_info.col_info.extend;
t_info.col_info(3).col_name:='table_row_detail';
Sogar Paket kompilieren erfolgreich , zur Laufzeit bekomme ich die exception ORA-06531: Verweis auf nicht initialisierten collection .
Wie Initialisiere ich col_info Sammlung ?
Ich habe versucht, zu initialisieren, t_info.col_info (), aber ich bekomme "Es gibt keine Funktion", wie diese hier . TIA, Aurel
ora-06531.ora-code.com und Lesen Sie die Beiträge an der Unterseite, kann dies Ihnen helfen.
InformationsquelleAutor user1540471 | 2013-03-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie initialisieren alle Sammlungen (einschließlich verschachtelter) richtig, bevor Sie auf Sie zugreifen können.
Sie sind atomar, null-Werte vor der Initialisierung.
Müssen Sie sich auch nennen
extend
vor der Zuweisung eines Wertes für jeden varray-element (oder verlängern Sie einmal mitextend(3)
).Oder tun es alle in einer Anweisung:
Tut mir Leid, ich habe vergessen, dass die Datensätze, die im Gegensatz zu Objekten nicht bequem Konstruktor. Jedes Feld des Datensatzes muss initialisiert werden getrennt.
t_info.table_name:='gl_temp_report1';
undt_info.col_info:=c_info();
InformationsquelleAutor Egor Skriptunoff
Um eine Initialisierung durchzuführen, müssen Sie eine Initialisierungs-block, um die Paket-Körper, in einer Weise, die der folgenden ähnelt:
Teilen und genießen.
InformationsquelleAutor Bob Jarvis
Können Sie erstellen t_info wie gezeigt:
Prost!
InformationsquelleAutor Gurwinder Singh