yallayalla Geschrieben 22. November 2004 Geschrieben 22. November 2004 Hallo! Die DB liefert mir die Fehlermeldung: ORA-01422: exact fetch returns more than requested number of rows bei diesem select: select id into t_id from id_sup; auf den dann noch open cu_projekt; loop fetch cu_projekt into ..... folgt Was will mir diese Fehlermeldung sagen? Danke für jeden Tip. mfg yallayalla
P3AC3MAK3R Geschrieben 22. November 2004 Geschrieben 22. November 2004 Es sieht so aus, als ob das select-Statement mehr als einen Wert zurückliefern würde. Damit der zurückgelieferte Wert aber in der Variablen t_id abgelegt werden kann, darf aber auch wirklich nur einer zurückkommen.
yallayalla Geschrieben 22. November 2004 Autor Geschrieben 22. November 2004 Hallo! Also die Spalte ID in der Tabelle, aus der selected wird, hatnatuerlich mehr als einen Eintrag... select id into t_id from id_sup; select vorhabenid into t_vorhabenid from id_sup where id=t_id; quasi soll die erste ID gelesen werden, anhand der wird dann die vorhabenid ermittelt. Irgendwie habe ich da nen Denkfehler, glaube ich... mfg yallayalla
johnhaltonx Geschrieben 22. November 2004 Geschrieben 22. November 2004 Du versuchst eine Ergebnismenge in einer Variable zu speichern, das das select mehr als einen Wert zurückliefert. Entweder du verwendest einen Array oder du begrenzt die Ergebnismenge auf 1 an das select ein "where xy=yz and rownum=1" Gibt nur den ersten Wert des selects zurück
tuxfriend Geschrieben 22. November 2004 Geschrieben 22. November 2004 quasi soll die erste ID gelesen werden, anhand der wird dann die vorhabenid ermittelt. Irgendwie habe ich da nen Denkfehler, glaube ich... Dein Gedankengang ist für mich zumindestens nicht ganz klar. Was hast du denn genau vor? Dein select gibt jedenfalls mehr als einen Wert zurück und kann deswegen nicht in einer Variable gespeichert werden. Ich denke du mußt dir eine Cursor deklarieren und diesen dann in eine Schleife durchlaufen.
The_red_one Geschrieben 23. November 2004 Geschrieben 23. November 2004 Wie wärs damit: das ganze in einen select schachteln -> select vorhabenid into t_vorhabenid from id_sup where id in (select id from id_sup)
AxlHammer Geschrieben 23. November 2004 Geschrieben 23. November 2004 select vorhabenid into t_vorhabenid from id_sup where id in (select id from id_sup) Das liefert aber immer noch die Fehlermedlung, wenn in der Tabelle id_sup mehrere Datensätze vorhanden sind (mit unterschiedliche IDs). Ich würde sagen, YallaYalla schildert erstmal genau sein Problem bzw. die Situation... Gruss, Axl
AxlHammer Geschrieben 23. November 2004 Geschrieben 23. November 2004 Hallo! Also die Spalte ID in der Tabelle, aus der selected wird, hatnatuerlich mehr als einen Eintrag... select id into t_id from id_sup; select vorhabenid into t_vorhabenid from id_sup where id=t_id; quasi soll die erste ID gelesen werden, anhand der wird dann die vorhabenid ermittelt. Irgendwie habe ich da nen Denkfehler, glaube ich... mfg yallayalla Was meinst du genau mit "die erste ID"? Die erste die in die Tabelle eingetragen wurde? Dann genügt es so wie johnhaltonx so erwähnte in der WHERE-Clause ein "rownum < 2" aufzunehmen und es würde bereits eine Abfrage reichen: select vorhabenid into t_vorhabenid from id_sup where rownum < 2; Ansonsten bitte nochmal genau das Problem beschrieben... Gruss, Axl
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden