IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

Probleme du curseur parametrable ou utlfile?


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 137
    Par défaut Probleme du curseur parametrable ou utlfile?
    Bonsoir,

    J'ai un probléme, je recupere des données a partir d'un fichier plat sur os UNIX, avec les utl_file, je visualise les données avec dbms tout va bien, dbms_output.put_line('DEBUT CURSEUR v1 = ' || v1);quand je les passe dans une variable pour un curseur parametrabel, ne se passe rien, ne sais pas d'ou vient le probléme si du curseur ou du fichier?

    Pourriez vous svp m'aider sur ce probléme ?

    Merci d'avance,
    Je vous le serais reconnaissant,

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

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut


    t'as bien tester la requête en copiant la valeur de V1 ?

  3. #3
    Membre éclairé

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Par défaut
    Nous avons remarqué en 9i lors de l'utilisatin des for que les paramètres n'étaient pas toujours pris en compte !
    Mais c'était sur des for imbriqués tel que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for row1 in  cursor1 loop
       for row2 in  cursor2(row1.champ1) loop
        --Traitement'
       end loop
    end loop
    Jamais sur les FOR seul je te conseille, on sait jamais d'ouvrir ton curseur "à l'ancienne" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    r_IMSI c_IMSI%rowtype;
     
    if c_IMSI%isopen then
       close c_IMSI;
    end if;
    open c_IMSI(v1);
    loop
       fetch c_IMSI into r_IMSI;
       exit when c_IMSI%notfound or c_IMSI%notfound is null;
    end loop;
    if c_IMSI%isopen then
       close c_IMSI;
    end if;

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 137
    Par défaut curseur et fichier utlfile
    Bonjour,

    Finalement, le probléme provient du fichier plat sur l'os qui contenait des tabulation au lieu des blancs, et quand je recuperais V1 il rentre dans le curseur mais il fait rien car la valeur v1=[V1 + TAB].

    Merci à tous quand meme.

Discussions similaires

  1. [HTML] Probleme de curseur dans un formulaire
    Par Phenomenium dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 08/01/2006, 19h42
  2. Problème de reception parametre dans script sh
    Par lolo_ici_et_la dans le forum Linux
    Réponses: 1
    Dernier message: 05/01/2006, 17h55
  3. [debutant] probleme url comme parametre
    Par orelero dans le forum Langage
    Réponses: 2
    Dernier message: 18/12/2005, 13h51
  4. Probleme passge de parametres script
    Par Dom_the_quaker dans le forum Langage
    Réponses: 4
    Dernier message: 27/09/2005, 17h15
  5. Probleme valeur de parametre dans une fonction
    Par TitouLolo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/05/2005, 13h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo