Bonjour,
j'ai les boucles imbriquées suivantes :
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
	j := 1;
 
	FOR tab IN SELECT unnest(tableau) LOOP
		--La première ligne du tableau contient les noms des colonnes, on passe aux suivantes
		IF j = 1 THEN
			j := j+1;
			CONTINUE; 
		END IF;
 
		i := 1;
 
		FOR elem IN SELECT unnest(tab) LOOP
			--La première colonne du tableau contient les noms des lignes, on passe aux suivantes
			IF i = 1 THEN
				i := i+1;
				CONTINUE; 
			ELSE IF elem IS NOT NULL THEN
				trouve := 1;
			END IF;
 
			--Si la ligne contient au moins une case non nulle, elle est gardée et on passe à la ligne suivante
			IF trouve = 1 THEN
				RETURN NEXT tab;
				EXIT;
			END IF;
 
		END LOOP;
 
	END LOOP;
avec i, j et trouve des entiers, tableau un tableau à 2 dimensions de varchar, tab un record et elem un varchar.

Je veux récupérer toutes les lignes de tableau qui ont au moins un élément non nul : éliminer toutes les lignes nulles.
A noter que les premières ligne et colonne du tableau contiennent des titres. C'est un tableau croisé.

Lorsque j'exécute, j'ai l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
ERREUR:  erreur de syntaxe sur ou près de « LOOP »
LINE 113:   END LOOP;
                ^
 
********** Erreur **********
 
ERREUR: erreur de syntaxe sur ou près de « LOOP »
État SQL :42601
Caractère : 2018