KEINE DATEN GEFUNDEN in loop cursor
Ich hab 'Keine Daten gefunden' - Fehler, wenn ich lief die folgenden codes in PLSQL.
declare
v_firm_id number;
amount number;
begin
OPEN MT_CURSOR FOR
SELECT firm_id
FROM t_firm;
LOOP
FETCH MT_CURSOR INTO v_firm_id;
EXIT WHEN MT_CURSOR%NOTFOUND;
Select sum(TRN_AMOUNT) into amount
from t_sales
where FIRM_ID = v_firm_id;
update t_firm
set matching_amount = amount
where firm_id = v_firm_id;
END LOOP;
end;
Nichts falsch mit diesen codes? Könnte jemand lassen Sie mich wissen, die Korrektur? Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es scheint, dass das problem ist es gibt keine Daten in der Tabelle T_SALES für eine der Firmen, die vom cursor zurückgegeben werden. Um dies zu umgehen müssen Sie eine Prozedur für das NO_DATA_FOUND
Ausnahme so, dass, wenn es keine Verkäufe für einen Kunden, der Gesamtumsatz wird auf null gesetzt:
Teilen und genießen.
Select sum(TRN_AMOUNT) into amount
zuSelect NVL(sum(TRN_AMOUNT), 0) into amount
.Ich denke, es gibt keine übereinstimmung zwischen t_firm und t_sales basierend auf firm_id.
Einen kleinen Hinweis, ersetzen Sie es mit einer SQL-Anweisung: