|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : septembre 2006 Messages : 59 ![]() |
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. |
|
|
12
|
|
|
#2 |
|
Membre confirmé
![]() Grégoire MARTINIngénieur développement logiciels Inscription : janvier 2011 Messages : 128 ![]() |
Ma suggestion serait de prendre le temps de décrire en détail votre probleme.
|
|
|
42
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 440 ![]() |
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.
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
31
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : septembre 2006 Messages : 59 ![]() |
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 ? |
|
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Grégoire MARTINIngénieur développement logiciels Inscription : janvier 2011 Messages : 128 ![]() |
quel resultat veut on obtenir ? quel base oracle utilisée ?
__________________
Cordialement. |
|
|
00
|
|
|
#6 |
![]() ![]() |
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.
__________________
Email : http://scr.im/waldar |
|
20
|
|
|
#7 |
![]() Inscription : décembre 2002 Messages : 2 387 ![]() |
Pour ma part, je n'ai pas la moindre idée de ce que ça veut dire...
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
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. |
|
|
02
|
|
|
#9 | |
![]() ![]() |
Citation:
À 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.
__________________
Email : http://scr.im/waldar |
|
|
20
|
|
|
#10 | |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
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:
=> 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. |
|
|
|
01
|
|
|
#11 | |
![]() ![]() |
Citation:
C'est donc celui qui souhaite aider qui doit aller à la pêche aux informations ?
__________________
Email : http://scr.im/waldar |
|
|
00
|
|
|
#12 | ||
|
Membre confirmé
![]() Grégoire MARTINIngénieur développement logiciels Inscription : janvier 2011 Messages : 128 ![]() |
Citation:
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 Citation:
__________________
Cordialement. |
||
|
|
10
|
|
|
#13 |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
Java fait l'objet de spécifications très précises.
Quoi de plus précis que de demander à reproduire une fonctionnalité de quelquechose qui est déjà spécifié ? Refaire une spécification aproximative ? Si je te demande avec SQL Server "comment faire une requête qui retrouve le papa et la maman du fiston avec l'age du capitaine", tu trouves ça plus clair que si je te demande l'équivalent de CONNECT BY PRIOR d'Oracle ? Désolé, moi pas. |
|
|
02
|
|
|
#14 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 926 ![]() |
bon, une piste serait les regexp
Code :
|
||
|
00
|
|
|
#15 |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
Non.
Une recherche sur Google de la phrase "oracle split function" retourne des exemples de mise en place de la fonction split en PL/SQL. Si on fait le tri, un lien dans un forum propose un des débats très intéressants sur les performances des diverses solutions proposées (pas moins de 10 solutions différentes) permettra à l'auteur du topic de trouver son bonheur en fonction du contexte dans lequel il a besoin de la fonction (nombre de chaines à traiter, taille des chaines, etc.) |
|
|
00
|
|
|
#16 | |||
|
Nouveau Membre du Club
![]() Inscription : septembre 2006 Messages : 59 ![]() |
Citation:
![]() Beaucoup de bruit pour une si petite demande. Je vous prie de m'excuser si elle n'était pas très claire (y a bien qu'une fille pour penser que les autres comprennent ce qu'elle a dans la tête...). Merci à tou(te)s. |
|||
|
|
10
|
|
|
#17 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 926 ![]() |
split existe dans la plupart des langages, shell, perl, awk, java et autres.
lit aussi http://fdegrelle.over-blog.com/article-1342263.html pour une solution plsql et puis tu peux aussi écrire une fonction plsql qui fait du java, comme sur http://laurentschneider.com/wordpres.../06/epoch.html et fi des mâles qui se pavanent alentour, ce forum est modéré et toute réponse qui n'entre pas dans la chartre de l'utilisateur est savamment censurée |
|
00
|
Copyright © 2000-2012 - www.developpez.com