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 :

Construction d'un fichier CSV en utilisant PL/SQL


Sujet :

PL/SQL Oracle

  1. #1
    Membre tr�s actif
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2018
    Messages
    482
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Alg�rie

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : F�vrier 2018
    Messages : 482
    Par d�faut Construction d'un fichier CSV en utilisant PL/SQL
    Bonjour � tous,

    Je travaille actuellement sur un projet o� j'ai une table de param�trage (FICHIER_PARAM) et j'essaie de construire un fichier CSV en utilisant PL/SQL.
    J'ai besoin d'extraire les donn�es depuis une autre TABLE TABLE_DONNE, et de les formater de mani�re ordonn�e selon la colonne ORDRE et le param�trage SEPARATION_AVANT, et FUSIONNER_PRECEDENT,

    Plus sp�cifiquement, si la valeur de FUSIONNER_PRECEDENT est �gale � "O" (pour oui), je souhaite fusionner la donn�e avec celle d'avant et les consid�rer comme une seule donn�e. Un exemple concret serait de fusionner le NOM "MARC" avec le PRENOM "LEBEEAUBIEN" pour obtenir "MARC LE BEAUBIEN" comme un seul mot, et prendre en consid�ration le D�limiteur de champ texte 'DELIMA_CH_TXT' et S�parateur de champ 'SEPARAT_CH' et Caract�re de fin de ligne 'CARACT_FIN' qui sont aussi des colonne de param�trage.

    Je me demandais si quelqu'un pourrait me guider sur la meilleure fa�on d'impl�menter cela en utilisant PL/SQL. Si vous avez des suggestions, des exemples de code, ou des exp�riences similaires, je serais reconnaissant de les partager.

    Merci d'avance pour votre aide !

    Cordialement,

  2. #2
    Mod�rateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 624
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activit� : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 624
    Billets dans le blog
    10
    Par d�faut
    La solution SQL est assez simple, par exemple (ici r�alis� sous SQL serveur faute d'Oracle sous la main, mais le principe reste le m�me) :

    Code SQL : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    declare @concat char(1) ='O'
    declare @delim  char(1) =' '
    ;  
    with T1 (nom, prenom) as
        (select 'marc', 'le beaubien'      union all
         select 'sophie', 'fonfec'      
        )
    select nom
         , prenom
         , case when @concat='O' 
                then concat(nom, @delim, prenom) 
                else nom
           end as truc
    from T1

    R�sultat :

    Nom : Sans titre.png
Affichages : 195
Taille : 2,2 Ko

    Mais, comment allez vous exploiter le r�sultat si la personne a pour pr�nom "jacques" et pour nom "martin xxxx", apr�s concat�nation, vous ne saurez plus si martin faisait partie du nom ou du pr�nom.

  3. #3
    Membre tr�s actif
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2018
    Messages
    482
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Alg�rie

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : F�vrier 2018
    Messages : 482
    Par d�faut
    je vous remercie pour votre r�ponse,

    Cependant, la situation n'est pas aussi simple que vous l'imaginez, car le param�trage est d�fini dans une autre table et plusieurs exemples de donn�es peuvent coexister.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    Nom----------PRENOM----------FUSION_AVANT?---
    Marc ---------le beaubien------- O
    Michel--------Antoine----------- N
    Galerie-------Lafayette---------  O
    Wassi--------Bonc------------- --N
    dans ce cas le r�sultat final pour un s�parateur de champ qui est ; et un d�limiteur champ ui est " on doit avoir :


    "Marc le beau bien";"Michel Antoine Galerie Lafayette";"Wassi Bonc"

    ici remarquez que Galerie Lafayette est fusionn� avec Michel Antoine

  4. #4
    Mod�rateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 624
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activit� : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 624
    Billets dans le blog
    10
    Par d�faut
    C'est sans doute possible avec les fonctions LAG() ou LEAD(), mais il faut conna�tre l'ordre � utiliser, sachant que parcourir une table sans crit�re de tri (sans ORDER BY donc) ne garantit en rien que le r�sultat soit reproductible.
    Donc, quel est le crit�re de tri ?
    Edit : question subsidiaire, peut il y avoir plus de deux lignes � concat�ner successivement ?

  5. #5
    Membre tr�s actif
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2018
    Messages
    482
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Alg�rie

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : F�vrier 2018
    Messages : 482
    Par d�faut
    jes r�cup�rer les donn�es en une seule ligne, donc ce qu'il me reste est de detect� s'il y a une fusion_pr�cen ou pas

Discussions similaires

  1. R�ponses: 2
    Dernier message: 21/03/2020, 13h27
  2. Export en fichier CSV d'un select sql ?
    Par Devilstuff dans le forum MS SQL Server
    R�ponses: 1
    Dernier message: 17/01/2010, 15h05
  3. exportation de d'un fichier csv vers une table sql
    Par sanounatibibt dans le forum VB.NET
    R�ponses: 3
    Dernier message: 02/01/2010, 16h59
  4. R�ponses: 5
    Dernier message: 27/05/2008, 18h43
  5. [CSV] construction d'un fichier CSV
    Par max44410 dans le forum Langage
    R�ponses: 3
    Dernier message: 14/06/2007, 10h04

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