Datenbank Forum - für Anfänger und Profis

Willkommen im Datenbank Forum von Datenbanken-verstehen.de - Das Datenbank, Data Warehouse & Business Intelligence Forum!

Das Datenbank Forum für Anfänger und Profis ist eine Community zu den Themen Datenbanken, Data Warehouse & Business Intelligence. Nimm teil an der Community von Datenbanken-verstehen.de und tausch dich mit deinen Fragen und Lösungen mit anderen Nutzern aus.

Als registrierter Benutzer genießt Du viele Vorteile, wie

  • den vollen Zugang zu allen Foren und Unterforen
  • Kostenloses Lernmaterial inkl. Lösungen zum Thema Datenbanken
  • Zugriff auf DB-Tutorials, Best Practices und SQL-Snippets

Bevor Du einen Beitrag verfassen möchtest, kannst Du dich einfach kostenlos registrieren.

oder Einloggen mit



Beachte bitte die Forenregeln von Datenbanken-verstehen.de. Wir wünschen Dir viel Spaß im Datenbank Forum! - Dein Datenbanken-verstehen.de-Team

Exakter Abruf gibt mehr als die angeforderte Zeilenzahl

Alles zur Datenbankentwicklung im Oracle-Umfeld...

Exakter Abruf gibt mehr als die angeforderte Zeilenzahl

Beitragvon Jumper512 » Fr 3. Jun 2016, 18:28

Hallo,

ich bekomme die Fehlermeldung:
Fehlerbericht -
ORA-01422: Exakter Abruf gibt mehr als die angeforderte Zeilenzahl zurück
ORA-06512: in Zeile 4
01422. 00000 - "exact fetch returns more than requested number of rows"
*Cause: The number specified in exact fetch is less than the rows returned.
*Action: Rewrite the query or change number of rows requested


bei folgendem CODE:
Code: Alles auswählen
DECLARE
 v_X  x%ROWTYPE;
BEGIN
    SELECT *
    INTO v_X
    FROM x
    WHERE y ='ABC';

DBMS_OUTPUT.put_line(v_X.CLOSE_S);
END;
/


Ich hab nur Variablen umbenannt. Alle Spalten in x sind VARCHAR2 außer eine die ist "Date".
Jumper512
 
Beiträge: 4
Registriert: Mo 25. Apr 2016, 09:33

Re: Exakter Abruf gibt mehr als die angeforderte Zeilenzahl

Beitragvon Micha » Fr 3. Jun 2016, 20:51

Also der Fehler kann mehrere Ursachen haben:

1.Fall
Code: Alles auswählen
 SELECT *
    INTO v_X
    FROM x
    WHERE y ='ABC';

Das "Select *" liefert dir alle Spaten zurück. Du kannst aber nicht alle Spalten in einer Variable speichern, es sei denn, es ist eine Table-Variable.

2.Fall
Code: Alles auswählen
 SELECT *
    INTO v_X
    FROM x
    WHERE y ='ABC';

Das "Select" liefert kein Singlerow-Resultset zurück. Mehrere Zeilen passen nicht in eine Variable.

Untersuche mal das Statement und checke das Resultset...
Micha
 
Beiträge: 129
Registriert: So 3. Nov 2013, 12:13

Re: Exakter Abruf gibt mehr als die angeforderte Zeilenzahl

Beitragvon Jumper512 » Sa 4. Jun 2016, 15:46

Danke für die Antwort :D
Jumper512
 
Beiträge: 4
Registriert: Mo 25. Apr 2016, 09:33


Zurück zu Oracle

 


  • Related topics
    Antworten
    Zugriffe
    Letzter Beitrag

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

  • Jetzt Fan werden
  • Newsletter abonnieren? Hier anmelden!

    Alle Informationen aus dem Portal, Blog und Forum in einem Newsletter!

    E-Mail-Adresse: