Введение в СУБД "Oracle". Космачев В.М - 62 стр.

UptoLike

ГУАП МЦИТ
Введение в «ORACLE»
Под ред. проф. В.М.Космачёва
62
WHEN INVALID_CURSOR THEN
DBMS_OUTPUT.PUT_LINE(‘Ошибка приложения. He открыт курсор’);
WHEN OTHERS THEN
DBMS OUTPUT.PUT_LINE (‘Heдиагностированная ошибка приложения’);
END;
/
Исключительная ситуация, определяемая пользователем, должна быть описана в блоке DECLARE программы.
Используется следующий синтаксис описания исключительной ситуации:
имя__исключительной_ситуации EXCEPTION;
В программе условие возникновения исключительной ситуации определяется стандартными средствами, обычно
операторами IF..THEN. После обнаружения условий возникновения исключительной ситуации она генерируется
оператором RAISE, который имеет следующий синтаксис:
RAISE имя_исключительной ситуации;
Оператор RAISE генерирует исключительную ситуацию и передает управление на соответствующий обработчик
исключительной ситуации, который определен в блоке EXCEPTION. В качестве примера в роли исключительной
ситуации рассмотрим превышение значения Argl порога, равного 20.
Пример 2.3.24
SQL>DECLARE
Argl LECTURE.LECTURE_ID%TYPE;
Arg2 LECTURE.SURNAME%TYPE;
Arg3 LECTURE.NAME%TYPE;
Arg4 LECTURE.FAC_ID%TYPE;
Special_case EXCEPTION; Пользовательская исключительная ситуация
Cursor Curl IS SELECT * FROM LECTURE;
BEGIN
OPEN Curl;
FETCH Curl INTO Argl,Arg2,Arg3,Arg4;
WHILE Curl%FOUND LOOP
FETCH Curl INTO Argl,Arg2,Arg3,Arg4;
IF Argl>20 THEN RAISE Special_case; END IF;
END LOOP;
EXCEPTION
WHEN Special_case THEN
DBMSJDUTPUT.PUT_LINE('Пользовательекая Исключительная ситуация');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(‘He диагностированная ошибка');
END;
/
Упражнения
5. Сделать выборку из таблицы STUDENT с использованием курсора и цикла с методом %FOUND или
%NOTFOUND для получения данных о студентах, живущих в Москве.
6. Сделать выборку из таблицы SUBJECT с использованием курсора и цикла с методом %FOUND или
%NOTFOUND для получения данных о предметах во 2-ом семестре.
7. Сделать выборку из таблицы UNIVERSITY с использованием курсора и цикла с методом %FOUND или
%NOTFOUND для получения данных о факультетах с рейтингом большим 200.
8. Сделать выборку из таблицы EXAM_MARKS с использованием курсора и цикла с методом %FOUND или
%NOTFOUND для получения сведений об экзаменах, сданных в определенную дату.
9. Сделать выборку из таблицы SUBJLECT с использованием курсора и цикла с методом %FOUND или
%NOTFOUND для получения данных о преподавателях, читающих предмет с данным номером.