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 :

Split d'une chaine de caractères


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 70
    Par défaut Split d'une chaine de caractères
    Bonjour à tou(te)s,
    Je cherche à faire dans une requête SQL un split à la façon java (machaine.split("#");) d'une chaîne de caractères :


    Merci de vos suggestions.

  2. #2
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Par défaut
    Ma suggestion serait de prendre le temps de décrire en détail votre probleme.

  3. #3
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    bein .. il veut faire un split ..

    Il n'y a pas de fonction de split sous oracle, il faut le coder (avec des substr et des instr). Il y a plein d'exemples ou de posts là dessus.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 70
    Par défaut
    Si la chaine de caractères est de taille fixe et le séparateur tombant toujours au même endroit je pourrais utiliser un SUBSTRING.
    Mais j'ai un autre cas où les champs de la base sont de la forme AAAAA_BBB et je veux l'information AAAAA (de taille variable).
    Comment faire ?

  5. #5
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Par défaut
    Citation Envoyé par McM Voir le message
    bein .. il veut faire un split ..
    j'imagine bien mais sur quel séparateur ? un exemple ?

    quel resultat veut on obtenir ? quel base oracle utilisée ?

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Vous avez des pistes intéressantes dans ce sujet :
    http://www.developpez.net/forums/d11...re-commencant/

    Faites aussi quelques recherches sur ce forum, c'est une question récurrente.

  7. #7
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Citation Envoyé par McM Voir le message
    bein .. il veut faire un split .. .
    Pour ma part, je n'ai pas la moindre idée de ce que ça veut dire...

  8. #8
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Autant je suis d'accord que parfois il est nécessaire que la personne qui pose la question explique précisément ce qu'elle veut, autant des fois (et ici c'est vraiment le cas), il est nécessaire que les personnes qui lui répondent fassent un minimum d'effort pour comprendre.

    Il veut reproduire le comportement de la fonction SPLIT, qui existe dans tous les langages de haut niveau.

    Il n'y a pas plus clair comme demande.

    En revanche, il n'a pas trop cherché, puisque les deux premiers liens dans Google pour "oracle split function" répondent tous les deux à sa demande.

  9. #9
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Il veut reproduire le comportement de la fonction SPLIT, qui existe dans tous les langages de haut niveau.

    Il n'y a pas plus clair comme demande.
    À condition de connaître des langages de haut niveau, ce qui n'est pas un prérequis dans les bases de données ou le SQL.

    À partir du moment où la traduction de split signifie séparer, on a une vague idée, mais une vague idée c'est quand même loin de l'approche rigoureuse que demande n'importe quel développement, aussi minime soit-il.

    Par exemple, résultat en lignes ou en colonnes ?
    Rien que ce détail change toute l'approche de la solution, les demandes d'éclaircissements ne me paraissent pas déplacées ici.

  10. #10
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    il est nécessaire que les personnes qui lui répondent fassent un minimum d'effort pour comprendre.
    Justement en ce moment je bosse avec la MOA en pleine phase de recettage de mon projet. Ces derniers me pondent des anos qui contiennent comme unique description : "ça marche pas".
    Ce à quoi je répond : "Quoi qui marche pas, quelle fonctionnalité, que devrait elle faire, pour quel cas de test, etc. .. "

    Bref mon point ici était de dire : si tu veux une réponse claire, ciblée et rapide, alors fournis un max d'infos pour que les gens que tu sollicites le soient de façon efficace.

    Je ne connais rien en java et pour moi
    (machaine.split("#")
    ne veut rien dire.

  11. #11
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Je ne suis pas d'accord.

    Il n'est pas nécessaire de connaître Java, PHP, VB ou C# pour poster dans la catégorie base de données.

    Je suis parfaitement d'accord.

    En revanche, la question est on ne peut plus claire, et explique d'entrée de jeu qu'il cherche à reproduire une fonction JAVA.
    => La moindre des choses avant de répondre n'importe quoi, c'est déjà de se renseigner sur ladite fonction. Si on ne connait pas Java et qu'on n'a pas envie de faire l'effort de regarder ce que c'est, alors ne passe son chemin sans rien dire.
    http://download.oracle.com/docs/cd/E.../split.fn.html

    Citation Envoyé par ourseblanche Voir le message
    Je cherche à faire dans une requête SQL un split à la façon java (machaine.split("#");) d'une chaîne de caractères.
    Ensuite, dans son exemple, il poste un exemple avec le délimiteur "#".
    => Je me demande bien pourquoi 2 postes plus loin on lui reproche de ne pas dire quel séparateur il veut : on peut au moins reprendre celui de son exemple.

    Ceci dit, au final, on se moque éperduement du séparateur, puisque c'est bien le rôle de la fonction split : transformer une chaine de caractère en un tableau (donc un curseur/table dynamique) selon un séparateur qui est spécifié en paramètre.

    Même si je dois m'attirer les foudres de la modération, je persiste et signe : je ne suis pas du tout d'accord avec l'acceuil qui a été fait à ce topic.

  12. #12
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    En revanche, la question est on ne peut plus claire, et explique d'entrée de jeu qu'il cherche à reproduire une fonction JAVA.
    => La moindre des choses avant de répondre n'importe quoi, c'est déjà de se renseigner sur ladite fonction. Si on ne connait pas Java et qu'on n'a pas envie de faire l'effort de regarder ce que c'est, alors ne passe son chemin sans rien dire.
    Mais c'est le monde à l'envers.
    C'est donc celui qui souhaite aider qui doit aller à la pêche aux informations ?

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/12/2013, 16h40
  2. split d'une chaine ce caractères
    Par ROUGE87 dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 06/07/2011, 15h57
  3. Séparer une chaine de caractères sans split
    Par ndsaerith dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 24/05/2011, 16h05
  4. [LV2009] Split d'une chaine de caractère
    Par Super2006 dans le forum LabVIEW
    Réponses: 4
    Dernier message: 05/09/2010, 01h35
  5. Réponses: 2
    Dernier message: 06/12/2002, 07h50

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