Курсорный цикл FOR SQL
Ребят, подскажите пожалуйста делаю не так? Как правильно сделать запрос по заданию?
Создайте и выполните анонимный блок PL/SQL, осуществляющий обработку данных в таблице EMPLOYEES по следующим правилам. Требуется для всех строк в таблице занести данные в столбец COMMISSION_PCT, если данных в этом столбце нет. Числовые данные сформировать из двух последних цифр телефонного номера, добавив к ним слева десятичную точку. Указания:
Использовать функцию length(строка_символов) для получения количества символов в переменной строка_символов;
использовать функцию substr(строка_символов, начальная_позиция, длина_подстроки) для получения подстроки, содержащейся в переменной строка_символов;
использовать конкатенацию строк вида ‘.’||строка_символов для добавления символа десятичного разделителя к переменной строка_символов слева;
использовать функцию to_number(строка_символов, ‘.99’) для преобразования строковой переменной строка_символов к числовому типу данных;
использовать курсорный цикл for.
Вот что написал.
DECLARE
CURSOR occupancy_cur IS
SELECT EMPLOYEE_ID, COMMISSION_PCT, SUBSTR (PHONE_NUMBER, LENGTH (PHONE_NUMBER)) FROM EMPLOYEES WHERE COMMISSION_PCT = NULL;
BEGIN
FOR occupancy_rec IN occupancy_cur
LOOP
insert into EMPLOYEES(occupancy_rec.EMPLOYEE_ID, occupancy_rec.COMMISSION_PCT) values (EMPLOYEE_ID, PHONE_NUMBER);
END LOOP;
commit;
END;