Легко «преобразовать» это SELECT
в курсор:
cursor cur_r is select ... <your query goes here>;
Затем вы должны объявить переменную курсора (которая будет содержать результат, возвращаемый курсором) (вместо набора переменных, которые вы объявили сейчас), открыть курсор, извлечь из него, позаботиться о выходе из цикла, закрыть курсор , Слишком много действий, поэтому - почему бы вам не позволить Oracle сделать это для вас? Переключиться на курсор FOR
loop.
Вот как:
DECLARE
lv_shopper_num NUMBER(3) := 26;
BEGIN
for cur_r in (SELECT idBasket, dtcreated, quantity, subtotal,
sysdate - dtcreated as lv_days_num
FROM BB_BASKET
WHERE idShopper = lv_shopper_num
AND orderplaced = 0
)
loop
DBMS_OUTPUT.PUT_LINE(cur_r.idBasket ||'*'|| cur_r.dtcreated ||'*'||
cur_r.quantity ||'*'|| cur_r.subtotal ||'*'|| lv_days_num);
end loop;
END;