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.
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Cordialement.
Partager