Вы также можете решить проблему с помощью рекурсии.
Это решение не обязательно может быть лучшим, но должно показать, как решить проблему, в противном случае
WITH recursion (word, result)as (
SELECT 'oracle' AS word, substr('oracle',1,1) as result FROM DUAL
union all
select substr(word,2,LENGTH(word)-1), substr(word,2,1)
from recursion
where LENGTH(word) > 1
)
select result from recursion