Dynamische vectoren in pl/sql

hallo zusammen

ich brauche einen dynamischen vector wo ich elemente von bestimmten typ einfuegen bzw löschen kann.
ich habe diese sogennante nested tables gefunden.
das einfügen geht mit
table_name(index) := neue element;
und ich habe gelesen dass das löschen mit delete geht aber ich weiss nicht wie. ich habe so ausprobiert: delete table(index) geht nicht
weiss jemand vielleicht wo ich beispiele im internet finde oder hat jemand von euch einen tip?

danke im voraus

youssef

Gegenfrage
Hallo,
gibt es in C++ eigentlich Packages und gibt es in Java eigentlich implizite Cursor ?

Vielleicht, ein Java oder C++ Experte wird vermutlich aber mit nein antworten. Es sei denn :

  1. er kennt PL/SQL
  2. er weiß, was Packages in PL/SQL sind
  3. er kann das Konzept auf seine Sprache übertragen

Was ich damit sagen will ist, dass die Antwort auf deine Frage vielleicht lautet. Beschreibe uns bitte mit einfachen Worten, was genau du suchst und ich versuche, deine Erklärung zu übertragen.

Gruß der Janus

hallo janus,
ich möchte einfach elemente in eine liste,vector oder array eintragen und austragen können
ich habe so versucht.table von typ:
TYPE child_table_type IS TABLE OF varchar2(30) ;
child_liste child_table_type;

ich möchte ganz einfach zwei funktionen programmieren

einfügen(varchar2)
is
begin
child_liste := child_table_type(child_id);
end;

austragen(varchar2)
is
begin
child_liste.delete(index);–index des zu löschenden element
end;

der erste element kann eingetragen werden, aber wenn ich den zweiten element eintragen möchte, dann wird der ersten übergeschrieben.
wie kann ich den 2 eintrag in zweite stelle einfügen
ich hoffe du hast einigemassen mein problem verstanden und mir helfen kannst.so

gruss youssef

Propier das mal !
Hi Youssef !

Was Du hier verwendest ist wie ein VARRAY !

Z.B.:

 TYPE RecWerteTyp IS RECORD (
 desk varchar2(100),
 wert varchar2(1000));
 TYPE WerteTyp IS VARRAY(500) of RecWerteTyp;
 werte WerteTyp := WerteTyp();

 werte.EXTEND;
 werte(werte.COUNT).desk := 'xxxxx';
 werte(werte.COUNT).wert := 'yyyyy';
 wert(1).DELETE;