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 Oracle Discussion :

Séparer un champ texte en lignes


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2017
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Décembre 2017
    Messages : 66
    Par défaut Séparer un champ texte en lignes
    Bonjour,

    J'ai un champ texte type mémo (1 colonne 1 ligne) que je souhaiterais séparer en plusieurs lignes et sur 2 colonnes.

    Mon exemple :
    Le contenu est dans une seule ligne !
    54668107$001/190
    54668108$002/190
    54668109$003/290
    54668110$004/110
    54668111$005/190
    54668112$006/190
    54668113$007/190


    et je souhaiterais obtenir ceci :
    54668107$001 190
    54668108$002 190
    54668109$003 290
    54668110$004 110
    54668111$005 190
    54668112$006 190
    54668113$007 190

    Auriez-vous une idée stp ?

    Merci d'avance pour votre aide !

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 176
    Par défaut
    Bonjour,

    Tu peux utiliser la fonction REGEXP_SUBSTR:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select regexp_substr(colonne, '[^/]+'), regexp_substr(colonne, '[^/]+', 1, 2) from t;

  3. #3
    Membre confirmé
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2017
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Décembre 2017
    Messages : 66
    Par défaut
    Bonjour,

    Oui mais non... comme mes valeurs sont contenues dans une 1 seule et même ligne concaténée en utilisant cette solution je ne récupère que la première valeur et pas l'ensemble de mon champ texte .


    Merci.

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 176
    Par défaut
    Ok, ce n'était pas clair dans le message original. En supposant que ce sont des retours à la ligne qui séparent les valeurs dans ta ligne, tu peux essayer quelque chose comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select regexp_substr(colonne, '^([^/]+).+$', 1, level, 'm', 1) col1, regexp_substr(colonne, '^[^/]+/(.+)$', 1, level, 'm', 1) col2
    from t
    connect by level <= regexp_count(colonne, chr(10))+ 1;

  5. #5
    Membre confirmé
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2017
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Décembre 2017
    Messages : 66
    Par défaut
    oui désolée pour les explications...

    J'ai testé et ça ne marche que pour la première valeur et ça ne me fait qu'une seule ligne... :
    COL1 COL2
    54668107$001 190
    54668108$002/190
    54668109$003/290
    54668110$004/110
    54668111$005/190
    54668112$006/190
    54668113$007/190

    Merci.

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 176
    Par défaut
    Qu'est-ce qui sépare les différentes valeurs? Un saut de ligne, un espace?

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 11/09/2006, 12h44
  2. Réponses: 2
    Dernier message: 12/02/2006, 16h42
  3. 8i : sql loader et champ texte sur plusieurs lignes
    Par naonedboy dans le forum SQL*Loader
    Réponses: 1
    Dernier message: 23/11/2005, 11h07
  4. [jtable] Champs texte sur pls ligne dans cellule
    Par doudine dans le forum Composants
    Réponses: 8
    Dernier message: 17/11/2005, 13h36
  5. Réponses: 9
    Dernier message: 23/05/2005, 10h35

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