I would need to reverse the word positions in a sentence or String.
For example : \"Hello World! I Love StackOverflow\", to be displayed as \"StackOverflow          
        
XML-based version to avoid defining your own function; requires 11g for listagg():
select listagg(word, ' ') within group (order by rn desc) as reversed
from (
  select word, rownum as rn
  from xmltable('for $i in ora:tokenize($STR, " ") return $i'
    passing 'Hello World! I Love StackOverflow' as str
    columns word varchar2(4000) path '.'
  )
);
REVERSED                               
----------------------------------------
StackOverflow Love I World! Hello        
The XMLTable() does the tokenising, and assigns a row number:
select rownum as rn, word
from xmltable('for $i in ora:tokenize($STR, " ") return $i'
  passing 'Hello World! I Love StackOverflow' as str
  columns word varchar2(4000) path '.'
);
        RN WORD               
---------- --------------------
         1 Hello                
         2 World!               
         3 I                    
         4 Love                 
         5 StackOverflow        
The listagg() then pieces it back together in reverse order.