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

PL/SQL Oracle Discussion :

Faire un Update à partir d'un fichier texte


Sujet :

PL/SQL Oracle

  1. #1
    Membre du Club
    Profil pro
    None
    Inscrit en
    Avril 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : None

    Informations forums :
    Inscription : Avril 2012
    Messages : 53
    Points : 59
    Points
    59
    Par défaut Faire un Update à partir d'un fichier texte
    Bonjour,

    J'essaye depuis deux jours de réaliser un programme pl/sql pour mettre à jour une table à partir d'un fichier texte, j'ai écris un petit quelque chose, mais j'ai des erreurs et je n'arrive pas à les corriger !

    Mon code est le suivant :

    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
     
    create or replace procedure maj_mbd is
        fichier varchar2(200) := 'NEW2.TXT';
        dossier  varchar(30)   := 'dir_temp';
        Pointeur    UTL_FILE.FILE_TYPE;
        Tampon varchar2(50) ;  
        Erreur exception;
        Msg varchar2(256) ;
     
    begin
     
     
    begin
        Pointeur := UTL_FILE.FOPEN(dossier, fichier, 'R') ;
        exception
            When OTHERS Then
            Msg := SQLERRM || ' [' || dossier || '] -> ' || fichier;
            Raise Erreur ;
    end ;
     
    Begin
         Loop
                UTL_FILE.GET_LINE( fichier,  Tampon );
     
                update MATBALE
                set LADATE=sysdate,
                ID=777,
                where CODE = Tampon;
                commit;
        end loop ;
        exception
            when NO_DATA_FOUND Then 
            UTL_FILE.FCLOSE(fichier) ;
    end;    
     
    exception
       when Erreur Then
         UTL_FILE.FCLOSE(fichier);
            update TABLE_ERREUR set COMMENTAIRE='ERREUR' where CODE=Tampon;
    end ;
    Mon fichier texte ressemble à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    0000011277
    0000011278
    0000011279
    00000112552
    Et les erreurs que j'ai sont les suivantes (Pour l'instant ) :

    Nom : Capture.PNG
Affichages : 581
Taille : 7,5 Ko


    Je vous remercie d'avance

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Utilisez une table externe pour le fichier en question
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Update matable
       Set ...
     Where code In (select code from ma_table_externe)

  3. #3
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 33
    Points : 40
    Points
    40
    Par défaut
    les fonctions get_line et fclose attendent un objet de type file_type (ta variable Pointeur) et non pas un varchar2.

    UTL_FILE.GET_LINE( fichier, Tampon );
    devient
    UTL_FILE.GET_LINE( Pointeur, Tampon );

    et
    UTL_FILE.FCLOSE(fichier) ;
    devient
    UTL_FILE.FCLOSE(Pointeur) ;

    Salutations.

Discussions similaires

  1. Faire des courbes à partir d'un fichier texte
    Par AJ_ing dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 25/06/2012, 20h41
  2. [MySQL] update base de donnée à partir d'un fichier texte
    Par ikalangitahaja dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 09/03/2010, 13h42
  3. Réponses: 4
    Dernier message: 05/08/2009, 14h00
  4. état à partir d'un fichier texte
    Par onkel dans le forum Bases de données
    Réponses: 1
    Dernier message: 21/07/2005, 10h26
  5. Réponses: 11
    Dernier message: 04/08/2003, 15h30

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