Impensabile farlo in SQL puro.
Non conosco Oracle, ma in genere l'utilizzo di un "cursore" implica l'uso di un linguaggio esterno. Ed è esattamente quello che dovrai fare qui, come hai ipotizzato nel primo post.