Você pode evitar consultas ou loops recursivos, porque essencialmente precisa de um número de linha de cada linha em
locations
tabela. Portanto, você precisará fornecer uma ordem de classificação apropriada para a função analítica. Abaixo segue a consulta:UPD :Ou se você deseja um procedimento, então é ainda mais simples. Porque a partir do 12c o Oracle tem
fetch first
adição e função analítica podem ser simplificadas para rownum
pseudocoluna:db<>fiddle aqui