Обработка курсоров
Автор: Game 4teen • Май 10, 2019 • Лекция • 5,761 Слов (24 Страниц) • 302 Просмотры
ОБРАБОТКА КУРСОРОВ
1. ОПИСАНИЕ ТАБЛИЦ, ИСПОЛЬЗУЕМЫХ В ПРИМЕРАХ 1
2. ВВЕДЕНИЕ 7
3. ОБРАБОТКА ЯВНЫХ КУРСОРОВ 8
3.1. Объявления курсора 9
3.2. Открытие курсора 10
3.3. Считывание строки из курсора 11
3.4. Закрытие курсора 12
3.5. Атрибуты курсора 13
3.6. Параметризованные курсоры 16
4. ОБРАБОТКА НЕЯВНЫХ КУРСОРОВ 17
5. ЦИКЛЫ ВЫБОРКИ КУРСОРА 18
5.1. Простые циклы 18
5.2. Циклы WHILE 21
5.3. Курсорные циклы FOR 22
5.4. Неявные циклы FOR 23
6. NO_DATA_FOUND и %NOTFOUND 24
7. КУРСОРЫ SELECT FOR UPDATE 24
7.1. FOR UPDATE 24
7.2. WHERE CURRENT OF 26
7.3. Использование оператора COMMIT при считывании строк 27
8. КУРСОРНЫЕ ПЕРЕМЕННЫЕ 29
8.1.Объявление курсорной переменной 30
8.2. Ограниченные и неограниченные курсорные переменные 31
8.3. Выделение памяти под курсорные переменные 31
8.4. Открытие курсорной переменной для запроса 32
8.5. Закрытие курсорных переменных 33
8.6. Пример использования курсорных переменных 33
8.7. Ограничения на использование курсорных переменных 35
1. ОПИСАНИЕ ТАБЛИЦ, ИСПОЛЬЗУЕМЫХ В ПРИМЕРАХ
STUDENTS – содержит информацию о студентах, посещающих учебное заведение
MAJOR_STATS – содержит статистические сведения о различных профилирующих дисциплинах
ROOMS - хранит информацию об аудиториях
CLASSES - описывает курсы лекций, которые могут посещать студенты
REGISTERED_STUDENTS - содержит информацию о курсах лекций, которые посещают в настоящее время студенты
RS_AUDIT - используется для записи изменений, вносимых в таблицу REGISTERED_STUDENTS
LOG_TABLE - используется для записи ошибок Oracle
TEMP_TABLE - используется для хранения временных данных.
СТРУКТУРА ТАБЛИЦ
Имя таблицы | Имя поля | Тип поля, размер | Свойства поля | Комментарий |
STUDENTS | ID | Number(5) | Primary key | Идентификатор студента, генерируется с помощью последовательности STUDENT_SEQUENCE |
LAST_NAME | Varchar2(20) | Фамилия | ||
FIRST_NAME | Varchar2(20) | Имя | ||
MAJOR | Varchar2(30) | Профилирующая дисциплина | ||
CURRENT_CREDITS | Number(3) | Текущее количество зачетных единиц | ||
MAJOR_STATS | MAJOR | Varchar2(30) | Профилирующая дисциплина | |
TOTAL_CREDITS | Number | Общее число зачетных единиц | ||
TOTAL_STUDENTS | Number | Общее число студентов | ||
ROOMS | ROOM_ID | Number(5) | Primary key | Идентификатор аудитории, генерируется с помощью последовательности ROOM _SEQUENCE |
BUILDING | Varchar2(15) | Здание | ||
ROOM_NUMBER | Number(4) | Номер аудитории | ||
NUMBER_SEATS | Number(4) | Число мест | ||
DESCRIPTION | Varchar2(50) | Описание | ||
CLASSES | DEPARTMENT | Char(3) | Primary key | Факультет |
COURSE | Number(3) | Идентификатор курса лекций | ||
DESCRIPTION | Varchar2(2000) | Описание курса лекций | ||
MAX_STUDENTS | Number(3) | Максимальное число студентов | ||
CURRENT_STUDENTS | Number(3) | Текущее число студентов | ||
NUM_CREDITS | Number(1) | Число зачетных единиц | ||
ROOM_ID | Number(5) | Foreign key | Идентификатор аудитории | |
REGISTERED_STUDENTS | STUDENT_ID | Number(5) | Foreign key | Идентификатор студента |
DEPARTMENT | Char(3) | Foreign key | Факультет | |
COURSE | Number(3) | Идентификатор курса лекций | ||
GRADE | Char(1) | Оценка, допустимые значения: A, B, C, D, E | ||
RS_AUDIT | CHANGE_TYPE | Char(1) | Вид изменения | |
CHANGED_BY | Varchar2(8) | Кем изменено | ||
TIMESTAMP | Date | Временная метка | ||
OLD_STUDENT_ID | Number(5) | Старый идентификатор студента | ||
OLD_DEPARTMENT | Char(3) | Старый факультет | ||
OLD_COURSE | Number(3) | Старый курс лекций | ||
OLD_GRADE | Char(1) | Старая оценка | ||
NEW_STUDENT_ID | Number(5) | Новый идентификатор студента | ||
NEW_DEPARTMENT | Char(3) | Новый факультет | ||
NEW_COURSE | Number(3) | Новый курс лекций | ||
NEW_GRADE | Char(1) | Новая оценка | ||
LOG_TABLE | CODE | Number | Код ошибки | |
MESSAGE | VArchar2(200) | Сообщение | ||
INFO | Varchar2(100) | Информация | ||
TEMP_TABLE | NUM_COL | Number | Числовой столбец | |
CHAR_COL | Varchar2(60) | Символьный столбец |
...