Иван Сергеевич Задворьев

Язык PL/SQL


Скачать книгу

END IF;

      26 END LOOP;

      27

      28 DBMS_OUTPUT.PUT_LINE('Курсовые на старших курсах:');

      29

      30 l_row_index := l_course_works.NEXT(2);

      31 WHILE l_row_index IS NOT NULL LOOP

      32 DBMS_OUTPUT.PUT_LINE(' Курсовая на '||l_row_index

      33 ||' курсе: оценка ' ||l_course_works(l_row_index));

      34 l_row_index := l_course_works.NEXT(l_row_index);

      35 END LOOP;

      36

      37 DBMS_OUTPUT.PUT_LINE('Факультативы (всего '

      38 ||l_elective_courses.COUNT()||'):');

      39

      40 l_row_index := l_elective_courses.FIRST();

      41 WHILE l_row_index IS NOT NULL LOOP

      42 DBMS_OUTPUT.PUT_LINE(' ' ||l_elective_courses(l_row_index));

      43 l_row_index := l_elective_courses.NEXT(l_row_index);

      44 END LOOP;

      45

      46 END;

      47 /

      Студент: Ильин

      Курсовые на младших курсах:

      Курсовая на 1 курсе: оценка 4

      Курсовая на 2 курсе: оценка 4

      Курсовые на старших курсах:

      Курсовая на 3 курсе:

      Курсовая на 4 курсе: оценка 5

      Курсовая на 5 курсе: оценка 5

      Факультативы (всего 2):

      Оптимизация баз данных

      Теория надежности

      PL/SQL procedure successfully completed.

      Чаще всего в программах PL/SQL используются таблицы PL/SQL, поскольку считается, что с ними проще всего работать. Если же у программиста есть свобода выбора видов используемых коллекций, то для каждого конкретного случая следует учитывать несколько факторов, рассмотренных в литературе по PL/SQL.

      Обработка исключений

      Распространено мнение, что только половина профессионально написанного исходного кода реализует собственно функциональность программы. Остальной код – это ведение журнала программы, сохранение отладочной информации и обработка всевозможных ошибок.

      Понятие исключения

      Исключением (exception) в PL/SQL называется ситуация, которая не должна возникать при нормальном выполнении программы PL/SQL.

      Существует два типа исключений PL/SQL:

      системные исключения (run-time system exceptions), которые автоматически инициируются виртуальной машиной PL/SQL при возникновении программных ошибок этапа выполнения;

      пользовательские исключения (user-defined exceptions), объявляемые программистом в коде PL/SQL и используемые при реализации бизнес-логики.

      Программной ошибкой этапа выполнения (run-time program error) называется ситуация, когда наблюдается неожиданное поведение программы, затрудняющее или делающее невозможным достижение целей пользователя. Примерами программных ошибок могут служить попытки деления на ноль, ошибки преобразования символов в числа, ошибки выполнения предложений SQL.

      Пользовательские исключения инициируются в программах PL/SQL в том случае, когда на прикладном уровне возникли отклонения от стандартного процесса обработки данных. Например, при обработке поступивших данных встретился чек с отрицательной суммой покупки или не в рублях. С точки зрения правил бизнес-логики это такая же ошибка, как и деление на ноль с точки зрения правил арифметики. Для попытки деления на ноль в ходе выполнения программы системное исключение будет автоматически инициировано виртуальной машиной PL/SQL, потому что она «знает» правила арифметики. Для поступающих ошибочных платежей инициировать пользовательское исключение должен в своем коде программист PL/SQL, потому что он знает правила бизнес-логики вида «Платежи принимаются только в рублях, на положительные суммы с точностью до копеек», «Платежи принимаются только для открытой смены контрольно-кассовой машины (ККМ)» и так далее.

      Таким образом, основное различие системных и пользовательских