Vous pouvez utiliser quelque chose de similaire à ceci. Cela obtient la longueur de la chaîne, puis soustrait la longueur de la chaîne avec les espaces supprimés. En ajoutant ensuite le chiffre un à cela devrait vous donner le nombre de mots :
Select length(yourCol) - length(replace(yourcol, ' ', '')) + 1 NumbofWords
from yourtable
Voir SQL Fiddle avec démo
Si vous utilisez les données suivantes :
CREATE TABLE yourtable
(yourCol varchar2(15))
;
INSERT ALL
INTO yourtable (yourCol)
VALUES ('Hello To Oracle')
INTO yourtable (yourCol)
VALUES ('oneword')
INTO yourtable (yourCol)
VALUES ('two words')
SELECT * FROM dual
;
Et la requête :
Select yourcol,
length(yourCol) - length(replace(yourcol, ' ', '')) + 1 NumbofWords
from yourtable
Le résultat est :
| YOURCOL | NUMBOFWORDS |
---------------------------------
| Hello To Oracle | 3 |
| oneword | 1 |
| two words | 2 |