Veröffentlicht 22. November 200420 j 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
22. November 200420 j 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.
22. November 200420 j 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
22. November 200420 j 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
22. November 200420 j 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.
23. November 200420 j 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)
23. November 200420 j 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
23. November 200420 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.