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

Sql*Plus Oracle Discussion :

Construire un fichier a partir de 2 requetes


Sujet :

Sql*Plus Oracle

Vue hybride

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Par défaut Construire un fichier a partir de 2 requetes
    Salut

    déjà j'espère que j'ai choisi la bonne section ^^ vu que mes données je les extrait a l'aide de sql plus.

    Je vais vous expliquer mon problème

    je dois extraire des données d'un erp pour les insérer dans un logiciel de stock a l'aide du programme livrer avec ce logiciel

    les données a extraire sont les entêtes des documents et les lignes des documents (document d'attendu, bon de préparation etc)

    donc j'avais fais 2 requêtes distinctes pour extraire les données dans 2 fichiers 1 pour les entêtes, un autre pour les lignes

    suite a mes tests, le support du logiciel de stock, me dis qu'il faut un seul fichier pour integrer les documents. il faudrait une ligne pour l'entete de document,puis les lignes du doc, et ainsi de suite


    n'ayant pas l'habitude de travailler sur orcale, je ne sais pas trop comment m'y prendre



    voici la requete pour les entetes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    select
    ('ER' || '     ') "er",
    c.code "code",
    replace(co.texte,chr(13) || chr(10),' ')
    from t$commande_frs c,
    table(c.commentaire$$) co
    order by c.code

    et celle pour les lignes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    select
    c.code,
    l.code_article,
    l.article$.quantite,
    l.cdt_vente,
    c.code_fournisseur,
    l.delai_peremption$.unite
    from t$commande_frs c,
    table(c.ligne$$) l
    order by c.code, l.code_article
    pour les lignes il me reste a modifier pour que les champs apparaissent a l'endroit attendu dans le fichier

    voici des exemples de fichier que je fais pour l'instant (c'est pas exactement ce que je sort mais c'est l'idée ):


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ER     00008008                                          COMMENTAIRE SUR ATT001                                                                                                                                                                                                                                         CAN_USER1                                                                                           CAN_USER2                                                                                           CAN_USER 3                                                                                          CAN_USER 4                                                                                          CAN_USER 5                                                                                          0
    ER     00008009                                          COMMENTAIRE SUR ATT001                                                                                                                                                                                                                                         CAN_USER1                                                                                           CAN_USER2                                                                                           CAN_USER 3                                                                                          CAN_USER 4                                                                                          CAN_USER 5                                                                                          0
    ER     00008010                                          COMMENTAIRE SUR ATT001                                                                                                                                                                                                                                         CAN_USER1                                                                                           CAN_USER2                                                                                           CAN_USER 3                                                                                          CAN_USER 4                                                                                          CAN_USER 5                                                                                          0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    LR     00008008                                          0039188             0039188             2341                000010000000100000001000DSP1907                132                         000000000            CLA_USER 1                                                                                          PLANNONCES2                                                                                         PLANNONCES3                                                                                         OMPLANNONCES4                                                                                       OMPLANNONCES 5                                                                                      LANNONCES 6                                                                                         LA_USER 7                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       CLA_USER 15                                                                                         
    LR     00008008                                          0039186             0039186             2353                000010000000100000001000DSP1907                133                         000000000            CLA_USER 1                                                                                          PLANNONCES2                                                                                         PLANNONCES3                                                                                         OMPLANNONCES4                                                                                       OMPLANNONCES 5                                                                                      LANNONCES 6                                                                                         LA_USER 7                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       CLA_USER 15                                                                                         
    LR     00008008                                          0039185             0039185             2392                000010000000100000001000DSP1907                134                         000000000            CLA_USER 1                                                                                          PLANNONCES2                                                                                         PLANNONCES3                                                                                         OMPLANNONCES4                                                                                       OMPLANNONCES 5                                                                                      LANNONCES 6                                                                                         LA_USER 7                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       CLA_USER 15                                                                                         
    LR     00008009                                          0039188             0039188             2341                000010000000100000001000DSP1907                132                         000000000            CLA_USER 1                                                                                          PLANNONCES2                                                                                         PLANNONCES3                                                                                         OMPLANNONCES4                                                                                       OMPLANNONCES 5                                                                                      LANNONCES 6                                                                                         LA_USER 7                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       CLA_USER 15                                                                                         
    LR     00008009                                          0039186             0039186             2353                000010000000100000001000DSP1907                133                         000000000            CLA_USER 1                                                                                          PLANNONCES2                                                                                         PLANNONCES3                                                                                         OMPLANNONCES4                                                                                       OMPLANNONCES 5                                                                                      LANNONCES 6                                                                                         LA_USER 7                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       CLA_USER 15                                                                                         
    LR     00008010                                          0039188             0039188             2341                000010000000100000001000DSP1907                132                         000000000            CLA_USER 1                                                                                          PLANNONCES2                                                                                         PLANNONCES3                                                                                         OMPLANNONCES4                                                                                       OMPLANNONCES 5                                                                                      LANNONCES 6                                                                                         LA_USER 7                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       CLA_USER 15


    mais en faite il faudrait donc un seul fichier qui soit comme ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ER     00008008                                          COMMENTAIRE SUR ATT001                                                                                                                                                                                                                                         CAN_USER1                                                                                           CAN_USER2                                                                                           CAN_USER 3                                                                                          CAN_USER 4                                                                                          CAN_USER 5                                                                                          0
    LR     00008008                                          0039188             0039188             2341                000010000000100000001000DSP1907                132                         000000000            CLA_USER 1                                                                                          PLANNONCES2                                                                                         PLANNONCES3                                                                                         OMPLANNONCES4                                                                                       OMPLANNONCES 5                                                                                      LANNONCES 6                                                                                         LA_USER 7                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       CLA_USER 15                                                                                         
    LR     00008008                                          0039186             0039186             2353                000010000000100000001000DSP1907                133                         000000000            CLA_USER 1                                                                                          PLANNONCES2                                                                                         PLANNONCES3                                                                                         OMPLANNONCES4                                                                                       OMPLANNONCES 5                                                                                      LANNONCES 6                                                                                         LA_USER 7                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       CLA_USER 15                                                                                         
    LR     00008008                                          0039185             0039185             2392                000010000000100000001000DSP1907                134                         000000000            CLA_USER 1                                                                                          PLANNONCES2                                                                                         PLANNONCES3                                                                                         OMPLANNONCES4                                                                                       OMPLANNONCES 5                                                                                      LANNONCES 6                                                                                         LA_USER 7                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       CLA_USER 15                                                                                         
    ER     00008009                                          COMMENTAIRE SUR ATT001                                                                                                                                                                                                                                         CAN_USER1                                                                                           CAN_USER2                                                                                           CAN_USER 3                                                                                          CAN_USER 4                                                                                          CAN_USER 5                                                                                          0
    LR     00008009                                          0039188             0039188             2341                000010000000100000001000DSP1907                132                         000000000            CLA_USER 1                                                                                          PLANNONCES2                                                                                         PLANNONCES3                                                                                         OMPLANNONCES4                                                                                       OMPLANNONCES 5                                                                                      LANNONCES 6                                                                                         LA_USER 7                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       CLA_USER 15                                                                                         
    LR     00008009                                          0039186             0039186             2353                000010000000100000001000DSP1907                133                         000000000            CLA_USER 1                                                                                          PLANNONCES2                                                                                         PLANNONCES3                                                                                         OMPLANNONCES4                                                                                       OMPLANNONCES 5                                                                                      LANNONCES 6                                                                                         LA_USER 7                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       CLA_USER 15                                                                                         
    ER     00008010                                          COMMENTAIRE SUR ATT001                                                                                                                                                                                                                                         CAN_USER1                                                                                           CAN_USER2                                                                                           CAN_USER 3                                                                                          CAN_USER 4                                                                                          CAN_USER 5                                                                                          0
    LR     00008010                                          0039188             0039188             2341                000010000000100000001000DSP1907                132                         000000000            CLA_USER 1                                                                                          PLANNONCES2                                                                                         PLANNONCES3                                                                                         OMPLANNONCES4                                                                                       OMPLANNONCES 5                                                                                      LANNONCES 6                                                                                         LA_USER 7                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       CLA_USER 15
    le problème c'est qu'il y a plus de colonne dans la seconde requete, et qu'avec la configuration du fichier les colonnes des lignes de doc ne sont pas placé forcement a la même position dans le fichier

    Avez vous une idées de comment si prendre??


    ps :j'espere avoir été suffisamment clair

  2. #2
    Membre chevronné Avatar de NGasparotto
    Inscrit en
    Janvier 2007
    Messages
    421
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 421
    Par défaut
    Une solution est d'ajouter les colonnes a la premiere requete et faire un UNION :
    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
    select *
    from   (SELECT ('LR' || '     ') extract,
                   c.code,
                   l.code_article,
                   l.article$.quantite,
                   l.cdt_vente,
                   c.code_fournisseur,
                   l.delai_peremption$.unite
            FROM t$commande_frs c,
                 TABLE(c.ligne$$) l
            union all
            SELECT ('ER' || '     '),
                   c.code,
                   REPLACE(co.texte,chr(13) || chr(10),' '),
                   null,
                   null,
                   null
            FROM t$commande_frs c,
                 TABLE(c.commentaire$$)co)
    order by 1,2,3
    Nicolas.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Par défaut
    je viens de testé.

    Avec cette solution, en faisait un group by 2,3. ça donne a peu prêt ce que je veux.
    Par contre du coup mes colonnes a partir de l.artcile$.quantite sont décalées, vu que dans la requête des entêtes (ER) la colonne co.texte peu être assez longue

  4. #4
    Membre chevronné Avatar de NGasparotto
    Inscrit en
    Janvier 2007
    Messages
    421
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 421
    Par défaut
    Tu peux aussi concatener, et ajouter des lpad/rpad sur les colonnes pour respecter les longueurs, ce qui peut donner quelque chose comme ca :
    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
    SELECT *
    FROM   (SELECT ('LR' || '     ') extract,
                   c.code,
                   lpad(nvl(l.code_article,' '),<longueur>,' ') || ' ' ||
                   lpad(nvl(l.article$.quantite,' '),<longueur>,' ') || ' ' ||
                   lpad(nvl(l.cdt_vente,' '),<longueur>,' ') || ' ' ||
                   lpad(nvl(c.code_fournisseur,' '),<longueur>,' ') || ' ' ||
                   lpad(nvl(l.delai_peremption$.unite,' '),<longueur>,' ')
            FROM t$commande_frs c,
                 TABLE(c.ligne$$) l
            union ALL
            SELECT ('ER' || '     '),
                   c.code,
                   REPLACE(co.texte,chr(13) || chr(10),' ')
            FROM t$commande_frs c,
                 TABLE(c.commentaire$$)co)
    ORDER BY 1,2,3
    Remplacer <longueur> par la longueur du champ que tu veux.

    Nicolas.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Par défaut
    ah ca semble faire exactement ce qu'il me faut

    merci

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

Discussions similaires

  1. [SQL-Server] Créer fichier CSV à partir d'une requete SQL
    Par slimshady2878 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/12/2013, 19h02
  2. [Débutant] Construire un fichier avi à partir d'images bmp
    Par Auteur dans le forum MATLAB
    Réponses: 6
    Dernier message: 03/08/2010, 14h24
  3. [Débutant] construire une surface 3D à partir d'un fichier contenant 3 colonnes
    Par galega dans le forum MATLAB
    Réponses: 1
    Dernier message: 19/06/2009, 15h47
  4. Generer un fichier xls,csv a partir d'une requete
    Par minette dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 01/08/2006, 15h56
  5. générer un fichier a partir d'un requete
    Par boubu dans le forum VBA Access
    Réponses: 4
    Dernier message: 02/06/2006, 11h40

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