Нам нужно ВСТАВИТЬ или ОБНОВИТЬ данные таблицы consultant_skill, создать необходимые функции, процедуры ..., которые принимают идентификатор консультанта, идентификатор навыка и статус сертификации для задачи.Процедура должна быть достаточно удобной для пользователя, чтобы обрабатывать все возможные ошибки, такие как идентификатор консультанта, идентификатор навыка не существует ИЛИ статус сертификации отличается от «Y», «N».Не забудьте отобразить: фамилию консультанта, имя, описание навыка и подтверждение выполненного DML (подсказка: не забудьте добавить COMMIT внутри процедуры)
CREATE OR replace PROCEDURE nw (p_c_id NUMBER,
p_s_id NUMBER,
p_certification VARCHAR2)
AS
v_c_id NUMBER := p_c_id;
v_s_id NUMBER := p_s_id;
v_certification VARCHAR2(20);
flag NUMBER(3);
BEGIN
SELECT count(*)
INTO flag
FROM consultant_skill
WHERE c_id = v_c_id
AND skill_id = v_s_id;
dbms_output.Put_line (flag);
IF flag > 0 THEN
UPDATE consultant_skill
SET skill_id = p_s_id,
certification = p_certification
WHERE c_id = v_c_id;
ELSE
dbms_output.Put_line ('bye bye');
END IF;
END;
/
Застрял на самом обновлении .. еще допопробуйте вставить в блок else .. сначала пытаясь обновить часть .. не знаю, если это запись или нет
Но при компиляции samd он показывает ora 00001: уникальное ограничение нарушено