Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   For in & LOOP verschateln (https://www.delphipraxis.net/124026-loop-verschateln.html)

HolgerCW 13. Nov 2008 09:53

Datenbank: ORACLE • Version: 10 • Zugriff über: BDE

For in & LOOP verschateln
 
Hallo zusammen, (ACHTUNG: PL/SQL)

ich möchte zwei for in Schliefen verschachteln. Wenn ich nur eine Schleife nutze funktioniert es, wenn ich aber eine weitere Schleife hinzufüge kann ich die Procedure zwar kompilieren aber es funktioniert ncihts mehr. Hier mal ein Teil meines Codes:

Code:
for e in (
      select bk.* from tabelle bk
      where bk.Spalte_1 IS NOT NULL
      order by bk.Spalte_2)

      loop

              for t in (
              select tg.* from tabelle2 tg
              where tg.Spalte_1 = e.Spalte_1
              order by tg.Spalte_2)

           loop

                 ...
 
                 end loop;
commit;
       
            end loop;
Was fehlt da. Kommt der eventuell nciht mehr aus der zweiten Schleife raus ?

Gruss

Holger

[edit=Phoenix]Delphi- nach Code-Tags geändert. Das scheint mir PL/SQL zu sein. Mfg, Phoenix[/edit]

HolgerCW 13. Nov 2008 11:51

Re: For in & LOOP verschateln
 
Hallo,

es liegt nicht an den verschalchtelten LOOPs sondern daran das ich im zweiten LOOP folgendes tue:

Delphi-Quellcode:
insert into Tabellex (
         ID1, ID2, ID3, RANG)
          values('1', '1000099999', '22', '2');
Wenn ich das auskommentiere, dann läuft er auch die innere Schleife durch. Woran kann das liegen, das wenn ich ein INSERT in der Schleife mache er raus springt. Er setzt einen Tupel ab aber keinen zweiten mehr ...

mkinzler 13. Nov 2008 11:57

Re: For in & LOOP verschateln
 
Sind die Werte variable oder wird immer der gleiche Inhalt eingetragen?

HolgerCW 13. Nov 2008 11:59

Re: For in & LOOP verschateln
 
Die sind variable. Ich verstehe nur nicht warum er das INSERT nur einmal absetzt. Ein Update setzt er mehrmals ab.

mkinzler 13. Nov 2008 12:03

Re: For in & LOOP verschateln
 
Wie sieht der PK aus? Sind die Ds in dieser Beziehung wirklich einmalig?

nahpets 13. Nov 2008 12:06

Re: For in & LOOP verschateln
 
Hallo,

hast Du in der Routine eine Fehlerbehandlung?
Wenn nein, bau Dir eine ein und lass' Dir die Fehler ausgeben (http://www.datenbank-plsql.de/fehlerbehandlung.htm).
Wie sehen die Schlüssel von Tabellex aus, hast Du da eventuell ein Problem?
Was passiert, wenn Du hinter jedem Insert (zum Test) ein Commit einbaust?
Protokolliere die per Insert einzufügenden Werte mit dbms.output, um zu sehen, dass wirklich das in die Tabelle eingefügt wird, was Du erwartest.

HolgerCW 13. Nov 2008 12:16

Re: For in & LOOP verschateln
 
Das war der Hinweis. Die erste ID war einmalig. Ich dachte aber die ganze zeit das Sie das nicht wär.

Vielen dank. Läuft jetzt ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz