Курсорный цикл 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;

Ответы (0 шт):