Announcement

Collapse
No announcement yet.

Einzelne Felder in einem Record ansprechen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Einzelne Felder in einem Record ansprechen

    Hi,

    ich hab folgendes Problem:
    Über einen select werden Daten in einen curser geschrieben. Der einzelne String wird durch instr in einzelne Segmente getrennt.
    Diese sollen in einen Record - je Segment in ein Feld - geschrieben und später in einer Tabelle abgelegt werden.

    Die Trennung des strings in einem loop ist kein Problem, aber wie kann ich der DB klarmachen, daß bei jedem Durchlaufen der Schleife, das Ergebnis in das nächste Feld des Records geschrieben werden soll????

    Thanks!

  • #2
    Hi Jo,

    wenn ich dich recht verstanden habe, dann sollte folgendes gehen:

    TYPE rec_type IS RECORD (
    feld1 varchar2(10),
    feld2 varcahr2(20),
    feld3 VARCHAR2(20));

    record rec_type;

    TYPE chr_type IS TABLE OF VARCHAR2(30);
    dummy chr_type;

    OPEN cursor <br>
    LOOP <br>
    FETCH cursor INTO blabla <br>

    while bedingung <br>

    dummy[i].feld := instr(blabla.string, ...); <br>
    i := i + 1; <br>

    END WHILE <br>

    record.feld1 := dummy[1].feld; <br>
    record.feld2 := dummy[2].feld; <br>
    record.feld3 := dummy[3].feld; <br>
    ... <br>

    HIER KOENNTE ABER AUCH STEHEN:
    ===============================
    INSERT INTO (feld, feld1, feld3)
    VALUES (dummy[1].feld, dummy[2].feld' ... );

    END LOOP <br>
    CLOSE cursor; <br>

    dummy verhaält sich in diesem Fall wie ein Array.
    Das funktioniert natuerlich nur, wenn alle Felder denselben DAtentyp haben.
    Wenn es nicht zu viele Felder sind, koennte man so vorgehen.
    Allerdings musst du coh fuer das instr() sowieso immer eine separate Zeile schreiben, oder? Da kannst du
    doch gleich ins Record speichern???
    Oder du fuehrst gleich das Insert aus...

    Gruss

    stefa

    Comment

    Working...
    X