Bonjour tout le monde!


Je travaille sur un programme PL/SQL sous la base Oracle 11g, mais celui-ci a pas mal de soucis à fonctionner...

Au niveau de mon feedback, j'ai le message d'erreur suivant:
ORA-06511: PL/SQL: cursor already open


Voici mon code:

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
40
41
42
43
44
45
46
47
48
49
50
51
 DECLARE
  -- déclaration du curseur
     CURSOR my_cursor IS
     SELECT distinct COUNTRY
     from   WW_SITES_JAN;
 
  -- variables d'accueil   
  COUNTRY     VARCHAR2(180); 
  V_GEO       VARCHAR2(50);
  V_REGION    VARCHAR2(180);
  V_COUNTRY   VARCHAR2(180); 
  V_INDUSTRY  VARCHAR2(150); 
  NBR_SOD     NUMBER;
  NBR_DUNS    NUMBER;
 
 
 BEGIN
 
      OPEN my_cursor;  -- ouverture du curseur
 
          For curs IN my_cursor 
 
           LOOP             -- boucle sur les lignes
 
 
              -- Problème de fetch à résoudre:  "ORA-01422: exact fetch returns more than requested number of rows"  
 
              FETCH my_cursor
              INTO COUNTRY;
 
 
              select distinct geo, region, country, null, count(*)
              into   V_GEO, V_REGION, V_COUNTRY, V_INDUSTRY, NBR_SOD
              from   WW_SITES_JAN
              where  curs.country = country
              group by geo, region, country;
 
              insert into toto2 (geo, region, country, site_industry, nbr_sod)
              values (v_geo, v_region, v_country, v_industry, nbr_sod);
 
 
 
 
              -- EXIT WHEN my_cursor%NOTFOUND;
 
 
           END LOOP;
 
      CLOSE my_cursor; -- fermeture du curseur
 
 END;
voilà. Je vous remercie d'avance pour une réponse de votre part