MySQL Forums
Forum List  »  Italian

Il cursore non funziona correttamente
Posted by: Pietro Torrente
Date: December 03, 2021 05:57AM

Salve a tutti. Ho un altro strano problema. Ho una stored con un cursore dichiarato così:

DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = 1;

CREATE TEMPORARY TABLE NewsTable (ID INT, Immagine NVARCHAR(255), Titolo LONGTEXT);

BEGIN
DECLARE NewsCursor CURSOR FOR SELECT news.ID, news.Immagine, news.Titolo, news.Sottotitolo, news.Body FROM news;

OPEN NewsCursor;

NEWSLOOP: LOOP
FETCH NewsCursor INTO id, immagine, titolo, sottotitolo, body;

IF finished = 1 THEN
LEAVE NEWSLOOP;
END IF;

INSERT INTO NewsTable (ID, Immagine, Titolo) SELECT id AS ID, immagine AS IMMAGINE, titolo AS TITOLO;
INSERT INTO NewsTable (ID, Immagine, Titolo) SELECT 0 AS ID, '' AS IMMAGINE, sottotitolo AS TITOLO;
INSERT INTO NewsTable (ID, Immagine, Titolo) SELECT 0 AS ID, '' AS IMMAGINE, body AS TITOLO;
END LOOP;

CLOSE NewsCursor;
END;

SELECT ID, Immagine, Titolo FROM NewsTable;

Viene fuori il numero di record corretto (18 righe), ma ogni record è uguale all'altro, con i dati dell'ultimo record della tabella a cui punta il cursore (news).
Cosa sbaglio? Perché il FETCH tira fuori solo i dati dell'ultimo record di "news"?

Options: ReplyQuote


Subject
Views
Written By
Posted
Il cursore non funziona correttamente
53
December 03, 2021 05:57AM


Sorry, only registered users may post in this forum.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.