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