Bonjour,

j'ai la procédure suivante:

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
52
53
 
PROCEDURE recup_web IS
   ADRESSE VARCHAR2(255);
   LA_PAGE UTL_HTTP.HTML_PIECES;
   DEBUT NUMBER;
   FIN NUMBER;
   TRAVAIL VARCHAR2(4000);
   LIGNE VARCHAR2(2000);
   TYPE_FICHIER VARCHAR2(10);
   FICHIER UTL_FILE.FILE_TYPE;
   YDDD VARCHAR2(4);
   W_ROOT VARCHAR2(50);
BEGIN
   W_ROOT :='/home/';
   SELECT TO_CHAR(SYSDATE,'YDDD') INTO YDDD FROM dual;
   ADRESSE:='http://www.toto.fr/questions/flux/questionnaire2.php4';
   LA_PAGE := UTL_HTTP.REQUEST_PIECES(ADRESSE);
   FICHIER:=UTL_FILE.FOPEN(W_ROOT,'QUEST_WEB'||YDDD||'.TXT','w');
     IF LA_PAGE.COUNT=1 
   THEN
            DEBUT:=1;
		FIN:=0;
		DEBUT:=INSTR(LA_PAGE(1),'<debut ',DEBUT);
		WHILE debut<>0 LOOP
		   FIN:=INSTR(LA_PAGE(1),'</fin>',DEBUT);
		   LIGNE:=SUBSTR(LA_PAGE(1),debut+11,FIN-(DEBUT+11));
		  TYPE_FICHIER:=SUBSTR(LA_PAGE(1),debut+7,3);
		  IF TYPE_FICHIER='que' 
		  	 THEN UTL_FILE.PUT_LINE(FICHIER,LIGNE); 
		  END IF;
		  DEBUT:=INSTR(LA_PAGE(1),'<debut ',FIN);
		END LOOP;
   ELSE
	   FOR I IN 1 .. LA_PAGE.COUNT-1
	   LOOP
	    TRAVAIL:= LA_PAGE(I) || LA_PAGE(I+1);
	    DEBUT:=1;
		FIN:=0;
		DEBUT:=INSTR(TRAVAIL,'<debut ',DEBUT);
		WHILE debut<>0 AND ((debut<2000 AND i< LA_PAGE.COUNT-1) OR i= LA_PAGE.COUNT-1) LOOP
		  FIN:=INSTR(TRAVAIL,'</fin>',DEBUT);
		  LIGNE:=SUBSTR(TRAVAIL,debut+11,FIN-(DEBUT+11));
		  TYPE_FICHIER:=SUBSTR(LA_PAGE(i),debut+7,3);
		  IF TYPE_FICHIER='que' 
		  	 THEN UTL_FILE.PUT_LINE(FICHIER,LIGNE); 
		  END IF;
		  DEBUT:=INSTR(TRAVAIL,'<debut ',FIN);
		END LOOP;
	   END LOOP;
   END IF;
   	   UTL_FILE.FCLOSE(FICHIER);
   COMMIT;  
   END recup;
Cette procédure permet de récupérer des informations via une page php qui génère des lignes, lignes correspondant à des données d'une base mysql .
Voici à quoi ressemble le fichier que j'obtiens:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
<debut que>0210125834510072006BB B21     V   D  E  F  GQ1 R I     BC  FB        M  N J                               00060DEAB</fin>
<debut que>0210135024010072006DC B31      C               R I            ABC EFB        M                                    00100DEBB</fin>
<debut que>0210138154510072006DDAB21      C               R I  J  z.Zt. bei           A C   B       H       Fit for Fan                   00050ECAB</fin>
<debut que>0210031282110072006DD B42     V   D              I                  C  FA            E                                00050DBBB</fin>
Mais à chaque fois je ne récupère pas toutes les données de base de données mysql.
il me manque 3 4 lignes. Je pense que cela vient de ma procédure PL/SQL car quand je vais directement sur ma page PHP, je recupère bien toutes mes données.

Cela fait plusieurs temps que j'essaye de voir d'où cela peut venir mais je ne trouve pas.
Si quelqu'un pouvait m'aider ce serait très sympa.