Hallo Leute ,
ich will eine Liste ausgeben , die aus zwei verschiedene Select-Abfrage stamm. Ich will dass Ergebnis meine Rechnungen in eine variable speichern und das als output meine Funktion nacher ausgeben.
Ich bekomme die folgende Fehlermeldung.
FEHLER: SELECT kann nicht als Cursor geöffnet werden
CONTEXT: PL/pgSQL function “test” line 101 at FOR over SELECT rows.
CREATE FUNCTION test (feld integer)
RETURNS text
AS $$
DECLARE
ROW_DATA text := ‘’;
ROW_DATEN text := ‘’;
text_output text := ‘’;
…
FOR row_daten IN SELECT V_BSM_LOOKUP_KU, SUM(N_BETR_AL),SUM(N_BETR_HO),SUM(N_BETR_FG)
INTO TEMP
FROM VW_MBU_BKS,PO
WHERE I_AKTE_AKTE_ID = PO.I_AKTE_AKTE_ID_PO
GROUP BY V_BSM_LOOKUP_KU
LOOP
IF (V_BSM_LOOKUP_KU_TEMP = ‘U1’) THEN
N_SUM_AL_U1_LOCL = COALESCE(N_SUM_AL_TEMP, 0);
N_SUM_HO_U1_LOCL = COALESCE(N_SUM_HO_TEMP, 0);
N_SUM_FG_U1_LOCL = COALESCE(N_SUM_FG_TEMP, 0);
END IF;
IF (V_BSM_LOOKUP_KU_TEMP = ‘U2’) THEN
N_SUM_AL_U2_LOCL = COALESCE(N_SUM_AL_TEMP, 0);
N_SUM_HO_U2_LOCL = COALESCE(N_SUM_HO_TEMP, 0);
N_SUM_FG_U2_LOCL = COALESCE(N_SUM_FG_TEMP, 0);
END IF;
IF (V_BSM_LOOKUP_KU_TEMP = ‘S1’) THEN
N_SUM_AL_S1_LOCL = COALESCE(N_SUM_AL_TEMP, 0);
N_SUM_HO_S1_LOCL = COALESCE(N_SUM_HO_TEMP, 0);
N_SUM_FG_S1_LOCL = COALESCE(N_SUM_FG_TEMP, 0);
END IF;
IF (V_BSM_LOOKUP_KU_TEMP = ‘S2’) THEN
N_SUM_AL_S2_LOCL = COALESCE(N_SUM_AL_TEMP, 0);
N_SUM_HO_S2_LOCL = COALESCE(N_SUM_HO_TEMP, 0);
N_SUM_FG_S2_LOCL = COALESCE(N_SUM_FG_TEMP, 0);
END IF;
END LOOP;
N_SUM_AUSLAGEN_AUSGANG_PO = N_SUM_AUSLAGEN_AUSGANG_LOCL;
N_SUM_HONORAR_BERECHNET_PO = N_SUM_HONORAR_BERECHNET_LOCL;
N_SUM_FREMDGELD_AUSGANG_PO = N_SUM_FREMDGELD_AUSGANG_LOCL;
N_SALDO_HONORAR_PO = N_SALDEN_HONORAR_LOCL;
N_SALDO_AUSLAGEN_PO = N_SALDEN_AUSLAGEN_LOCL;
N_SALDO_FREMDGELD_PO =N_SALDEN_FREMDGELD_LOCL;
N_GESAMTSALDO_PO = N_GESAMTSALDO_LOCL;
END LOOP;
RETURN N_GESAMTSALDO_PO;
END;
$$language plpgsql;
Danke für Ihre Hilfe.