Bonjour,
Je me sens vraiment pas doué puisque je souhaite simplement découper une chaine séparée par des espaces.
Par exemple : chaine= "je ne suis pas doué"
résultat :
je
ne
suis
pas
doué
Bonjour,
Je me sens vraiment pas doué puisque je souhaite simplement découper une chaine séparée par des espaces.
Par exemple : chaine= "je ne suis pas doué"
résultat :
je
ne
suis
pas
doué
Vous n'avez pas à être gêné puisque la réponse n'est pas si simple.
Par contre, une petite recherche dans le forum Oracle sur le mot "découper" vous indiquera pas mal de sujets traitant ce problème.
J'ai trouvé un post qui traite d'un problème similaire :
http://www.developpez.net/forums/d1099852/bases-donnees/oracle/sql/oracle-split-varchar/
Edit : ce qui donnerais dans ce cas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 WITH t AS ( SELECT 'je ne suis pas doué' AS c FROM dual ) SELECT x.column_value AS list_mot FROM t CROSS JOIN TABLE( cast(multiset( SELECT substr( ' '||c||' ', instr( ' '||c||' ', ' ', 1, rownum )+1, instr( ' '||c||' ', ' ', 1, rownum+1 ) -instr( ' '||c||' ', ' ', 1, rownum )-1 ) FROM dual connect BY level <= length(c)-length(REPLACE(c,' ',''))+1 ) AS sys.odcivarchar2list ) ) x;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 LIST_MOT ------------------------------------------------------------------------- je ne suis pas doué 5 rows selected.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select regexp_substr(str, '[a-z]* ',1,lvl) from (select 'je ne suis pas doué ' str from dual) t, (select level lvl from dual connect by level <10);
"un marteau pour enfoncer le clou, un tournevis pour visser une vis, pas l'inverse, c'est la rançon du succès" (citation de moi-même)
j'ai optimisé l'essence de ma pensée cartésienne cette nuit...
Je f'rai pas mieux
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT regexp_substr('je ne suis pas doué ', '[a-z]* ',1,level) FROM dual connect BY level <10;![]()
Mais si, ce level < 10 ce n'est pas très joli.
Dans les liens précédemment fournis il y a de quoi compter les espaces afin de rafiner la requête.
Partager