Announcement

Collapse
No announcement yet.

wert trotzdem ausgeben

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

  • wert trotzdem ausgeben

    guten morgen!
    <br>
    CURSOR Bcastadrr IS<br>
    sucht mir alle ID's - aber eben nur wenn in dem Feld name was drinnensteht!
    jetzt wird dieser Eintrag manuell(anderes Programm) herausgelöscht!
    --> das heißt <b>Zeile_Bcastadrr.aktuellebcast</b> sollte 0 sein - ist es aber nicht, weil es keinen Eintrag mehr gibt! Das heißt loop ist fertig und gibt mir meine Zeile mit dbms_output <b>nicht</b> aus, sollte es aber.... wie kann ich das anstellen????
    <br>
    open Bcastadrr;
    loop
    fetch Bcastadrr into Zeile_Bcastadrr;
    exit when Bcastadrr%NOTFOUND;

    open Ausgabe(<b>Zeile_Bcastadrr.aktuellebcast</b>);
    fetch Ausgabe into Zeile_Ausgabe;
    exit when Ausgabe%NOTFOUND;

    dbms_output.put_Line(Zeile_Ausgabe.abfrage);
    .
    .
    .

  • #2
    Hallo ofna,

    die Zeile <cite>exit when Bcastadrr%NOTFOUND;</cite> sorgt ja dafür, das deine Schleife verlassen wird, wenn kein weiterer DS gefunden wird. Wenn du dort noch eine Sonderbehandlung benötigst, dann mach doch was in der Art:<pre>
    ...
    if Bcastadrr%NOTFOUND then
    <i>hier die Sonderbehandlung vor dem Verlassen der Schleife</i>
    ...
    exit;
    end if;
    ...</pre>
    mit Bcastadrr%ROWCOUNT kannst du z.B. Abfragen, wieviele Zeilen des Cursor Bcastadrr bereits abgerufen wurden.

    Gruß Fal
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      So in die Richtung hab ichs eh schon probiert -

      fetch Bcastadrr into Zeile_Bcastadrr;
      if Bcastadrr%NOTFOUND
      then Zeile_Bcastadrr.aktuellebcast := 0;
      end if;
      exit when Bcastadrr%NOTFOUND;

      hat aber nicht funktioniert :-

      Comment


      • #4
        Dann solltest du deine Programmlogik überdenken .
        Du hast eine Schleife mit <b>zwei</b> Rücksprungpunkten (exit when Bcastadrr%NOTFOUND, exit when Ausgabe%NOTFOUND). In deinem jetzigen Code wird a) der Cursor Ausgabe nur geöffnet und gefetcht wenn das Fetch für Bcastadrr erfolgreich war und b) die Ausgabe über dbms_output.put_Line(Zeile_Ausgabe.abfrage); erfolgt nur wenn zusätzlich auch das Fetch für Ausgabe erfolgreich war. Du solltest die Abbruchbedingungen für deinen Schleife überdenken!

        Gruß Fal
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment

        Working...
        X