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.
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.
Ma suggestion serait de prendre le temps de décrire en détail votre probleme.
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.
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 ?
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.
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.
À 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.
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 moine veut rien dire.(machaine.split("#")
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
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.
Partager