Размер шрифта
-
+

Язык PL/SQL - стр. 21

SQL> DECLARE

2 l_surname students.surname%TYPE;

3 l_course_works t_course_works;

4 l_elective_courses t_elective_courses;

5 l_row_index PLS_INTEGER;

6 l_student_id students.id%TYPE := 18;

7 BEGIN

8

9 SELECT surname,course_works,elective_courses

10 INTO l_surname,l_course_works,l_elective_courses

11 FROM students WHERE id=l_student_id;

12

13 DBMS_OUTPUT.PUT_LINE('Студент: '||l_surname);

14

15 IF l_course_works.EXISTS(1) or l_course_works.EXISTS(2) THEN

16 DBMS_OUTPUT.PUT_LINE('Курсовые на младших курсах:');

17 ELSE

18 DBMS_OUTPUT.PUT_LINE('Курсовые на младших курсах отсутствуют')

19 END IF;

20

21 FOR i in 1..2 LOOP

22 IF l_course_works.EXISTS(i) THEN

23 DBMS_OUTPUT.PUT_LINE(' Курсовая на '||i||' курсе: ' ||

24 ' оценка '||l_course_works(i));

25 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 при возникновении программных ошибок этапа выполнения;

Страница 21