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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
| Declare
-- **********************************************************************
-- ***** DECLARATIONS
-- **********************************************************************
-- Noms des fichiers --
LC$Fic_in Varchar2(128) := 'EMP.TXT' ;
-- Noms des répertoires --
LC$Dir_in Varchar(30) := '/tmp';
-- Pointeurs de fichier --
LF$FicIN UTL_FILE.FILE_TYPE ;
-- Tampon de travail --
LC$Ligne Varchar2(32767) ;
l_text VARCHAR2(32767);
l_text1 VARCHAR2(32767);
occur1 Number;
v1 VARCHAR2(50);
v2 VARCHAR2(50);
i integer;
-- Message --
LC$Msg Varchar2(256) ;
l_file_length NUMBER;
-- Exception --
LE$Fin Exception ;
------------------------------------------------
CURSOR c_IMSI (v_IMSI IN Varchar2)
IS
SELECT g.idnprmgsm idnprmgsm_c, t.typsvcgsm typsvcgsm_c , sim.vente_id vente_id_c
FROM PARAM_GENCODSVC g,param_prmsvcgsm p,param_svcgsm s,PPCTYPSVCGSM t,ppc_sim_cust sim
WHERE s.idnsvcgsm = p.idnsvcgsm
AND p.idnprmgsm = g.idnprmgsm
AND t.idnsvcgsm = s.idnsvcgsm
AND sim.gencod = g.gencod
AND imsi = v_IMSI;
---------------------------------------------------
DEBUT DU PROGRAMME
-------------------------------------------------
Begin
-- Ouverture du fichier en entrée
Begin
LF$FicIN := UTL_FILE.FOPEN( LC$Dir_in, LC$Fic_in, 'R', 32764 ) ;
Exception
When OTHERS Then
LC$Msg := SQLERRM || ' [' || LC$Dir_in || '] -> ' || LC$Fic_in;
Raise LE$Fin ;
End ;
-- Traitement --
i:=i+1;
Begin
Loop
UTL_FILE.get_line(LF$FicIN, l_text);
l_text1:=LTRIM( RTRIM( l_text, ' ' ), ' ' );
l_text1:=RTRIM( l_text1, ' ' );
occur1:=INSTR( l_text1 ,' ');
v1:= SUBSTR(l_text1,1,occur1-1);
dbms_output.put_line('DEBUT CURSEUR v1 = ' || v1); <---------------- il affiche bien la valeur de V1--------
--------------------------------------------------------------------------------------------------------------
-- Parcours des lignes du paquets de services qui correspondent aux imsi en question
FOR ligne_c_IMSI IN c_IMSI (v1) <----------------------il se passe rien??????????????
LOOP
i:=i+1;
-- Insertion des valeurs dans la table PPCPRSMREQ
INSERT INTO PPCGSMREQ(IDNREQGSM,
TYPSVCGSM,
IDNPRMGSM,
ETAREQ,
TYPACT,
VENTE_ID,
INSDAT,
LGNUSR,
TYPMODDATEXP)
VALUES (SEQIDNREQGSM.nextval,
ligne_c_IMSI.typsvcgsm_c,
ligne_c_IMSI.idnprmgsm_c,
1,
'R',
ligne_c_IMSI.vente_id_c,
SYSDATE,
'RATTRAPAGE CHILI',
'R'
);
END LOOP; -- Fin du parcours des eventuelles lignes de la table PPCPRSMREQ qui correspondent à la valeur imsi
----------------------------------------------------------------------------------------------------------------------
End loop ;
Exception
When NO_DATA_FOUND Then -- Fin du fichier en entrée
-- Fermeture des fichiers --
UTL_FILE.FCLOSE( LF$FicIN ) ;
End ;
Exception
When LE$Fin Then
UTL_FILE.FCLOSE_ALL ;
RAISE_APPLICATION_ERROR( -20100, LC$Msg ) ;
End ; |
Partager