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; |
Partager