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 :

[9i] pl/sql [Débutant(e)]


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 8
    Par défaut [9i] pl/sql
    Bonjour,

    voila, j'ai 1 fichier en entrée que je dois lire pour récupérer un "id" et ensuite exécuter une requête sql en passant cet "id" en paramétre.
    utl_file.get_line(v_file,v_id);
    SELECT id into v_id FROM t_dossier where num_id = v_id;
    Mais je ne sais pas comment parcourir le fichier du début à la fin (ligne par ligne) ?
    Merci d'avance de votre aide.

  2. #2
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Bonjour et bien venu sur le forum.

    Pour lire toutes les lignes d'un fichier avec utl_file vous pouvez faire quelque chose comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    loop
       begin
          utl_file.get_line (id_fic, v_ligne);
       exception
          when no_data_found then exit;
       end;
    end loop;
    Pour plus d'information sur le package utl_file :
    http://sheikyerbouti.developpez.com/...?page=Chap8#L8

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 8
    Par défaut
    voici mon message d'erreur :

    DECLARE
    *
    ERROR at line 1:
    ORA-01422: exact fetch returns more than requested number of rows
    ORA-06512: at line 29

  4. #4
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Ce n'est pas un problème avec utl_file. C'est ton select ... into qui te ramène plus d'une ligne pour l'identifiant.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 8
    Par défaut
    je fais le traitement (logique) suivant et j'ai une erreur :

    LOOP
    utl_file.get_line(fic, v_lig);

    CURSOR C1 IS SELECT id FROM ma_table where num = v_lig;

    FOR C_REC IN C1 LOOP

    v_id := C_REC.id;

    SELECT toto into v_toto FROM ma_table where id = v_id;

    END LOOP;

    END LOOP;
    peux-tu me dire ce qui coince ?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 9
    Par défaut
    es-tu sur que ton select ne ramène pas plus d'une ligne par ID?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT toto 
    INTO v_toto 
    FROM ma_table
    WHERE id = v_id;
    Si tu peux utilise le sélect suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT id
    ,  count(*)  
    FROM ma_table 
    GROUP BY id
    si tu obtiens 2 ou plus sur une ligne, tu as ton erreur.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 8
    Par défaut
    J'ai bien mon erreur au niveau du select into.
    Merci

    en fait, je reviens à ma première question :
    je veux lire un fichier en entrée (id) et faire un select sur une table avec l'id en paramètre.
    Le dernier code ne fonctionne pas !

    Ps : je suis encore débutant.

  8. #8
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Et tu veux toutes les valeurs pour l'identifiant s'il y en a plusieurs ou tu en veux une peu importe laquelle ?

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 8
    Par défaut
    Eureka !
    Une mauvaise déclaration du 'cursor', pas au bonne endroit.
    Merci a tous de votre aide. c supe sympa !

    Bonne journée à tous !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. L'avenir du BDE et des SQL Links révélé ! <officiel>
    Par Merlin dans le forum Bases de données
    Réponses: 12
    Dernier message: 02/06/2006, 10h18
  2. Pb migration Access / SQL server
    Par yoyo dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 25/04/2005, 10h39
  3. Backup BD SQL Server
    Par Ethmane dans le forum Administration
    Réponses: 3
    Dernier message: 07/06/2002, 00h42
  4. Cours, tutoriels, logiciels, F.A.Q,... pour le langage SQL
    Par Marc Lussac dans le forum Langage SQL
    Réponses: 0
    Dernier message: 04/04/2002, 10h21

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