Announcement

Collapse
No announcement yet.

Mit fetch into Tabellen Attribute befüllen

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

  • Mit fetch into Tabellen Attribute befüllen

    Hi
    ich lerne gerade PL/SQL in der Schule. Wir haben eine Aufgabenstellung bekommen: Eine Tabelle Temporäre Tabelle Notendurchschnitt zu erstellen, durch diese soll es möglich sein den Notendurchschnitt pro Klasse und dort pro Fach zu errechnen.
    Die Tabelle soll folgende Attribute enthalten: Klassen Bezeichnung (ND_K_KLASSE), Bezeichnung des Faches(ND_G_FACH), Anzahl der Prüfungen(ND_ANZPRUEF) und Summe der Noten(ND_SUMNOTEN).
    Nachdem wir die Tabelle mit PL/SQL Statments gefüllt haben, sollen wir ein select * auf notendurchschnitt machen und danach die Tabelle löschen.
    Ich create table funktioniert.
    das select statment das die werte liefern soll ist auch richtig.
    select * funktioniert auch
    drop table auch
    Mein Problem ist das ich einfach nicht verstehe, wie ich die werte die im Curser stehen in die Attribute vom notendurchschnittGN hinhein bekomme.
    so wie der code jetzt ist felhlt bei select für den curser ein for update aber wenn ich das schreibe sagt er ich darf das bei diesem Statment nicht machen. ich habe im Internet gesucht, in unseren unterlagen, Lehrer gefragt, Lösungen von anderen gesehen ( die haben es aber nicht so wie ich gemacht) aber ich verstehe einfach nicht was ich machen soll.
    Ich hoffe ihr könnt mir helfen es zu verstehen.

    Es ist keine Hausaufgabe, die ich aus faulheit hier rein poste damit ihr sie für mich macht!


    Code:

    create table notendurchschnittGN
    (
    ND_K_KLASSE VARCHAR2(5 BYTE),
    ND_G_FACH VARCHAR2(2 BYTE),
    ND_ANZPRUEF NUMBER(3,0),
    ND_SUMNOTEN NUMBER(3,0)
    );

    declare
    cursor cur is SELECT S_K_KLASSE, P_G_FACH, SUM(P_NOTE), COUNT(P_NOTE)
    FROM SCHUELER
    INNER JOIN PRUEFUNGEN_JK ON P_S_KANDIDAT = S_SCHNR
    group by S_K_KLASSE, P_G_FACH;

    ND_K_KLASSE_rec notendurchschnittGN.ND_K_KLASSE%Type;
    ND_G_FACH_rec notendurchschnittGN.ND_G_FACH%Type;
    ND_ANZPRUEF_rec notendurchschnittGN.ND_ANZPRUEF%Type;
    ND_SUMNOTEN_rec notendurchschnittGN.ND_SUMNOTEN%Type;

    Begin
    open cur;

    fetch cur into nd_k_klasse_rec,nd_g_fach_rec,nd_anzpruef_rec,nd_s umnoten_rec;

    update notendurchschnittGN
    set nd_k_klasse = nd_k_klasse_rec
    where current of cur;
    close cur;
    End;
    /

    SELECT * FROM notendurchschnittGN;

    drop Table notendurchschnittGN;

  • #2
    Google ist Dein Freund Ich habe mal gegoogelt nach: "oracle cursor for update example" und fand gleich auf Platz 1:
    PL/SQL: Cursor for Update Example
    Schau mal, ob das die Fragen schon beantwortet.
    Ansonsten poste bitte, wo es konkret klemmt.
    Günstig zum Antworten wären auch die CREATE- und INSERT Scripte für die anderen Tabellen.

    Comment

    Working...
    X