1
Пожалуйста, помогите мне, чтобы преобразовать это заявление рамочную:Преобразовать чистый цикл в цикл с помощью курсора
BEGIN
FOR employee_rec in (SELECT * FROM BONUS)
LOOP
IF employee_rec.BONVALUE > 500 THEN
UPDATE BONUS
SET BONUS.TAX = BONUS.BONVALUE * 0.12 WHERE employee_rec.BONVALUE = BONUS.BONVALUE;
ELSIF
-- ...
END IF;
END LOOP;
END;
в заявлении, где CURSOR
используется.
Как правило, мы хотели бы видеть, какую попытку вы сами предприняли при решении проблемы, а также о том, где вы сталкиваетесь с проблемами. Запросы на код обычно не очень хорошо. – Sh4d0wsPlyr
Я не делал попыток bc. Я не полностью понимаю синтаксис и использование «курсора». Надежный пример конверсии прояснит для меня оба аспекта. –
Вы уже используете курсор. Вот что такое 'SELECT * FROM BONUS'. Если вы хотите назвать этот курсор, ну, это не так сложно ... просто определите курсор в разделе декларации и дайте ему имя. Однако, похоже, что в этом случае вам вообще не нужен курсор для цикла; Я предполагаю, что другие предложения IF также являются обновлениями в бонусной таблице? Если это так, вы должны быть в состоянии достичь этого в одном заявлении об обновлении. – Boneist