FETCH IN nicht eine Ausnahme auslösen, wenn der Satz leer ist, nicht wahr?

Hier ist der aktuelle code, den ich versuche zu Debuggen:

BEGIN
            OPEN bservice (coservice.prod_id);

            FETCH bservice
            INTO  v_billing_alias_id, v_billing_service_uom_id, v_summary_remarks;

            CLOSE bservice;

            v_service_found := 1;
        -- An empty fetch is expected for some services.
        EXCEPTION
            WHEN OTHERS THEN
                v_service_found := 0;
        END;

Wenn die parametrisierten cursor bservice(prod_id) leer ist, ruft es NULL in den drei Variablen und nicht eine Ausnahme werfen.

Also wer schrieb diesen code erwartet, dass es eine Ausnahme war falsch, richtig? Der Kommentar scheint zu implizieren, dass und leer fetch wird erwartet, und dann setzt es ein flag für die spätere Handhabung, aber ich denke, dass dieser code kann möglicherweise nicht getestet wurden, mit leeren Sätzen, die entweder.

Offensichtlich, es sollten bservice%NOTFOUND oder bservice%GEFUNDEN oder ähnliches.

InformationsquelleAutor Cade Roux | 2011-02-02
Schreibe einen Kommentar