Bonjour,
j'ai les boucles imbriquées suivantes :
avec i, j et trouve des entiers, tableau un tableau à 2 dimensions de varchar, tab un record et elem un varchar.
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;
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
Partager