В этом разделе создадим, выполним и отладим процедуру, которая будет определять комиссию любого сотрудника на основе объема продаж и доли работников в комиссии.
27. Загрузите файл с процедурой: выберите File > Open.
28. Выберите proc.sql файл и выберите Open.
29. Выберите Run Script для создания процедуры AWARD_BONUS.
30. Выберите hr соединение и нажмите OK.
31. Процедура создана и скомпилирована с предупреждением. Просмотрите предупреждение, раскройте Procedures в навигаторе.
32. Выберите AWARD_BONUS из списка процедур.
33. Выберите Compile.
34. Ошибка в 15 строке. Включите нумерацию. Выберите свободное пространство перед кодом. МП, и выберите Toggle Line Numbers.
35. Ошибка в том, что необходима ';' после RAISE comm_missing в строке 14. Введите ';' и выберите Compile снова.
36. Теперь процедура скомпилирована удачно. Выберите Run для запуска процедуры.
37. Окно Run PL/SQL открыто. Заметьте, что значения EMP_ID и SALES_AMT текущие равны null.
38. Измените NULL на 149 для EMP_ID и 2000 для SALES_AMT и нажмите OK.
39. Процедура запущена удачно и значения для salary изменены. Посмотрим работу отладчика. Для этого создадим breakpoint. Выберите линию 8.
40. Красный значок означает, что точка останова была создана таким образом, когда вы запускаете процедуру в режиме отладки, выполнение будет остановлено троке 8. Выберит Debug.
41. Выберите OK для принятия входных значений.
42. Отладчик запускается и останвливается в строке 8. Выберите вкладку Data.
43. Текущие значения для каждой переменной выведены. Выберите вкладку Debugging.
44. Нажмите Step Over для перехода на следующий оператор в процедуре.
45. SELECT оператор выполнен. Проверим значения для l_salary и commission. Выберите вкладку Data.
46. Заметьте, что значения l_salary и l_commission изменены на выходные значения в БД. Выберите вкладку Debugging.
47. Нажмите Step Over снова для перехода на следующий оператор.
48. Для выполнения процедуры до конца выберите Resume.
49. Процедура выполнена полностью.