Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Select Into - Fehler in Oracle

Empfohlene Antworten

Veröffentlicht

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

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.

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

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

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.

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)

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

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.