ORA-01403: keine Daten gefunden, Wählen Sie in
Ich bin immer ORA-01403: no data found
Ausnahme für die folgende Abfrage. Was sind die Möglichkeiten für diesen Fehler?
SELECT trim(name)
INTO fullname
FROM ( SELECT n.name
FROM directory dir, store n
WHERE dir.name = n.name
AND dir.status NOT IN ('F', 'L', 'M')
ORDER BY n.imp, dir.date)
WHERE rownum <= 1;
Wie kann ich mit diesem Fehler?
ORA-01403: keine Daten gefunden tritt auf, wenn Sie die Option IN, und es werden keine Zeilen zurückgegeben.
Erzählen Sie uns.. Haben Sie überprüft, für die Daten im Verzeichnis, in dem STATUS not IN ('F','L','M')? Haben Sie überprüft, die Daten im Speicher für Namen, holte aus dem Verzeichnis?
Ja... ich habe die beiden Werte. Immer mindestens ein Wert.
es scheint ein Fehler, zumindest in unserem
Erzählen Sie uns.. Haben Sie überprüft, für die Daten im Verzeichnis, in dem STATUS not IN ('F','L','M')? Haben Sie überprüft, die Daten im Speicher für Namen, holte aus dem Verzeichnis?
Ja... ich habe die beiden Werte. Immer mindestens ein Wert.
es scheint ein Fehler, zumindest in unserem
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit
- Umgebung mit!!!: function bar return varchar2 as x dual%rowtype; begin select * into x from dual where 1=0; return 'test'; end;
normal zurück ohne einen Fehler und der Rückkehr keine Ergebnisse :-/ .. nur erwähnt, weil fangen NO_DATA_FOUND explizit funktioniert. hier wie bereits erwähnt in Sandeeps Antwort: stackoverflow.com/a/21186642/1915920InformationsquelleAutor NaaN | 2014-01-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Obwohl Sie where-Bedingung, aber eine bessere Möglichkeit wäre, Griff-Fall-Datensatz wurde nicht gefunden oder 'Keine Daten Gefunden' - Fehler. Ich würde schreiben Sie oben stehenden code mit der Verpackung der SELECT-Anweisung mit eigener BEGIN/AUSNAHME/END-block.
Code könnte so etwas wie dieses:
Versuchte posting der Antwort im Kommentar, aber es ist zu verlieren, Einrückung, wenn geschrieben als Kommentar. Daher hinzugefügten code-snippet in meiner Antwort oben.
Danke. Was passiert, wenn wir nicht
fullName = NULL;
Seite in den exception-block?Das ist nur ein Platzhalter. Man kann damit umgehen-Fehler, wie pro Ihre Logik.
Danke, das funktioniert
InformationsquelleAutor Sandeep
Wenn das standard exception-handling beschrieben von Sandeep scheint zu viel Aufwand (wie in meinem Fall) und du bist fein mit
NULL
oder einzelne <nicht gefunden> Wert), könnten Sie sich nur verwandeln es so:=> keine ORA-01403 angehoben:
SEHR WEISE ENTSCHEIDUNG!
InformationsquelleAutor Andreas Dietrich
Wahrscheinlich, weil Sie Ihre Abfrage
ist-nicht wieder alle Zeilen
InformationsquelleAutor Arnab Bhagabati
Wenn
dir.status
hat keine null-Werte in deiner Tabelle, dannnot in
ist wahrscheinlich nicht das tun, was Sie denken, es ist. Sie bekommen möglicherweise keine Zeilen, auch wenn Sie denken, Sie bekommen sollte, eine oder mehrere Zeilen. Wechseln Sie zuand not (dir.status in ('F,'L','M'))
stattdir.status not in ('F','L','M')
.Sehen diese für Referenz.
InformationsquelleAutor GriffeyDog