अपने स्वयं के कार्य को परिभाषित करने से बचने के लिए एक्सएमएल-आधारित संस्करण; listagg()
. के लिए 11g की आवश्यकता है :
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
XMLTable()
टोकनिंग करता है, और एक पंक्ति संख्या निर्दिष्ट करता है:
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
listagg()
फिर इसे उल्टे क्रम में एक साथ वापस टुकड़े करें।