Announcement

Collapse
No announcement yet.

for-schleife (loop)

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

  • for-schleife (loop)

    Hallo,

    ich habe ein problem mit einer for-schleife (loop).

    Ich lese die anzahl der datensätze mit 'select count(*)...' aus. Klappt auch.

    Nun will ich die Anzahl der Datensätze an eine Hilfsvariable (i) übergeben um mit dieser dann die loop-schleife 'loop i in 1..10' zum laufen zu bringen. Aber irgendwie bekomme ich das nicht hin. Kann mir da jemand weiterhelfen?

    Gruß
    Wolf

  • #2
    Sicherlich könnten wir dir helfen, wenn Du uns nicht als Wahrsager arbeiten lassen willst.

    Gib uns noch folgende Infos:
    - Datenbanksystem (MS-SQL, Oracle, MySQL, ...)<br>
    - Abarbeitung in Trigger?<br>
    - Welche Programmiersprache/IDE?
    - Welche Zielplattform (ASP/ASP.NET/Win32)

    Comment


    • #3
      hallo nochmal,

      also das prob hab ich jetzt selber gelöst, nur hab ich noch eine frage (oracle):

      <b>DECLARE
      v_zaehler number(2);

      BEGIN
      FOR i in 1..10 LOOP
      insert into tempo (v_zaehler) values(i);
      END LOOP;
      END;

      /</b>

      ich will anstelle dieser insert into klausel lediglich ein select from dual setzen (z.B. select 'test<br>' from dual
      Dabei schmeisst er mir aber immer wieder die fehlermeldung (into-klausel erwartet).
      Kann ich diese fehlermeldung irgendwie umgehen? Zumal ich nicht mit insert arbeiten will in der schleife und auch nicht brauche.

      gruß
      Wol

      Comment


      • #4
        Hallo Wolf,

        in einem PL/SQL Block kannst du keine direkten Select-Statements absetzen. Um eine Ausgabe (z.B. in SQL-Plus) zu generieren, mußt du auf das Package dbms_output zurückgreifen:<pre>
        declare
        v_zaehler number(2);
        begin
        for i in 1..10
        loop
        SELECT i
        INTO v_zaehler
        FROM DUAL;
        dbms_output.put_line(v_zaehler);
        end loop;
        end;</pre>
        Der Umweg über das SELECT FROM DUAL ist allerdings nicht notwendig, du kannst natürlich in der Schleife einfach dbms_output.put_line(i); schreiben.

        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


        • #5
          erstmal danke.

          er läuft zwar das skript durch ohne fehler, aber das package scheint er zu übersehen. jedenfalls kommt keine ausgabe. wo gibt er denn das dann aus?

          gruß
          wol

          Comment


          • #6
            Hallo Wolf,

            in SQL-Plus mußt du die Ausgabe noch aktivieren mit "SET SERVEROUTPUT ON"!

            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


            • #7
              danke, hat sich inzwischen erledigt, da ich es jetzt ein wenig anders mache ;

              Comment

              Working...
              X