erreur dans une fonction MySQL
Bonjours,
J'ai besoin d'une fonction mais celle si ne marche pas étant un débutant sous MySQL j'aurais voulu savoir si vous voyez l'erreur. Je pense que j'ai mal déclaré le curseur.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
CREATE FUNCTION retourneSource(idDoc VARCHAR(32))
RETURNS @retour TABLE ( site CHAR(255) null, nombre INTEGER null )
AS
BEGIN
DECLARE @temp TABLE (site CHAR(255), nombre INTEGER)
DECLARE curseur CURSOR FOR
select site, count(site)
from (
select id_doc, substring(url from (instr(url, '//')+2) for instr(substring(url from (instr(url, '//')+2)), '/')-1) as site
from source
where url <> ''
limit 1000000
) tempTable
where id_doc like idDoc
group by site
order by 2 desc
OPEN curseur
DECLARE @site char(255)
DECLARE @nombre integer
FETCH NEXT FROM curseur INTO @site, @nombre
WHILE (@@FETCH_STATUS = 0)
BEGIN
INSERT INTO @temp VALUES ( @site, @nombre )
FETCH NEXT FROM curseur INTO @site, @nombre
END
CLOSE curseur
DEALLOCATE curseur
INSERT INTO @reponse
SELECT * FROM @temp
RETURN
END |
Il me dit qu'il y a un erreur a la deuxième ligne au niveau du "RETURNS @retour" mais je vois vraiment pas pourquoi.
Cordialement.