Я пытаюсь добавить новый столбец в таблицу ATA_ENTERTAINER с именем MORE_THAN_ONE с типом данных NUMBER.В этом столбце должно содержаться количество типов стилей, которые есть у артиста, если их более одного (если они есть, поместите в этот столбец значение NULL).
Мой код должен, используя явную структуру курсора и цикла,Пройдите через каждого артиста и определите количество стилей, которые у них есть.Если у артиста есть более одного, мне нужно изменить значение в столбце MORE_THAN_ONE для этого артиста с количеством стилей (в этом столбце должно быть NULL, если не более одного).Также мне нужно использовать FOR UPDATE и WHERE CURRENT OF как часть решения.Используйте базовый цикл для решения этой проблемы и IF для любых структур принятия решений.
ALTER TABLE ata_entertainer
ADD MORE_THAN_ONE NUMBER;
DECLARE
CURSOR c_style IS
SELECT * FROM ata_entertainer
NATURAL JOIN ata_entertainers_syle
FOR UPDATE OF MORE_THAN_ONE;
r_style ata_entertainer%ROWTYPE;
BEGIN
OPEN c_style;
LOOP
FETCH c_style INTO r_style;
EXIT WHEN c_style%NOTFOUND
WHERE CURRENT OF c_style;
DBMS_OUTPUT.PUT_LINE(r_style.style_code);
END LOOP;
CLOSE c_style;
END;
/
Поскольку у меня нет четкого чувства явного курсора и использования кода, трудно найти проблему с моим кодомхотя я получаю много ошибок.