Hay 3 formas de detener un loop y ninguna creo pueda ayudarte,
1.- Con el exit; o con exit when (condicion);
2.- Con un raise myexception;
3.- Con goto <<lugar_salida>>
Opino que deberías idearte una forma de recuperar la posicion en la que te quedas, por ejemplo el id de la tabla que se quedo durante el recorrido del loop (en el caso de que fuese un for cursor), para que hagas un exit when; luego llamas a una canva donde haces el ingreso de la variable que solicitas y luego vuelves a llamar al proceso del loop desde la posicion que se quedo enviando la variable capturada.
Aunque considero que no es conveniente que tu hagas interrupciones al loop para pedir valores al usuario, porque el loop puede quedarse corriendo largo tiempo sin pedir variables, y el usuario quedaria esperando a que el programa le pida, o viceversa el loop quedaria demasiado tiempo esperando que el usuario ingrese, en todo caso yo diria que antes de hacer el loop, lo recorras y captures todas las veces que el loop pediria un valor y las pones en un bloque de detalle, donde pones la descripcion y un campo que estara vacio para que el usuario llene todos los campos que el loop necesita, de esa forma el loop recorreria completo sin interrupciones.
Saludos DTB