15.2.5. Создание, выполнение и отладка процедуры

В этом разделе создадим, выполним и отладим процедуру, которая будет определять комиссию любого сотрудника на основе объема продаж и доли работников в комиссии.

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. Процедура выполнена полностью.

Рисунок 15.14. Процедура в SQL Developer

Процедура в SQL Developer