Avatar billede aggie Nybegynder
27. november 2001 - 14:36 Der er 1 løsning

PL/pgSQL fejl

jeg får:

ERROR during compile of cleanup_order near line 21
parse error at or near LOOP

når jeg prøver at køre den her:

CREATE FUNCTION cleanup_order(integer,integer)
RETURNS boolean
AS \'
    DECLARE
        p_id        ALIAS FOR $1;
        o_id        ALIAS FOR $2;
        cur_order_id    integer;
        cur_item_id    integer;
    BEGIN
        FOR cur_order_id IN SELECT id FROM ordre WHERE person_id = p_id AND status = 1 AND id != o_id
        LOOP
            RAISE NOTICE \'\'outer: %\'\',cur_order_id;

            FOR cur_item_id IN SELECT id FROM item WHERE order_id = cur_order_id
            LOOP
                RAISE NOTICE \'\'inner: %\'\',cur_item_id;
           
                UPDATE item SET ordre_id = o_id WHERE id = cur_item_id;

            END LOOP;

            UPDATE ordre SET status = 0 WHERE id = cur_order_id;

        END LOOP;
        RETURN TRUE;
    END;
\'
LANGUAGE \'plpgsql\';

hvoffer det?
Avatar billede aggie Nybegynder
22. januar 2002 - 16:16 #1
Efter en snak med udviklerne fortalte bruce momjian mig, at det skyldes et problem med nested loops og historik - det er noget pisse teknisk C, som jeg ikke fattede meget af, men der er p.t. ikke nogen løsning, og det ligger helt i bunden af TODO..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester