КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Экзаменационный билет n 8
1. Даталогическое моделирование. 2. SQL. Понятие курсора. Использование курсоров.
Курсоры обычно используются в рамках SQL, встроенного в программы, написанные на языке процедурного типа. Использование курсоров вызвано необходимостью стыковать позаписные включающие языки и теоретико-множественный язык SQL. Курсор определяется посредством оператора объявления курсора (DECLARE CURSOR). Этот оператор определяет имя курсора, а так же содержит в своем составе запрос, выходные данные которого сохраняются для последующей обработки включающей программой:
DECLARE <имя_курсора > [INSENSITIVE] [SCROLL] CURSOR FOR <подзапрос> [<предложение для обновления>]
Курсор находится либо в открытом состоянии, либо в закрытом. Начальное состояние курсора - закрытое. Для открытия курсора используется оператор OPEN CURSOR <имя курсора>. Запрос, описанный при определении курсора, выполняется именно при открытии курсора. При первом открытии курсор устанавливается перед первой строкой. Позиция курсора в открытом состоянии может быть перед определенной строкой, на определенной строке или после последней строки. Если курсор установлен на строку, то эта строка является текущей строкой курсора. Для построчного извлечения данных из курсора используется оператор FETCH. Этот оператор продвигает позицию открытого курсора на следующую строку в порядке этого курсора, извлекает значения полей этой строки в переменные и имеет следующий синтаксис:
FETCH [[orientation] FROM] имя курсора INTO целевая спецификация.,..;
orientation::= NEXT | PRIOR | FIRST | LAST | {ABSOLUTE | RELATIVE спецификация значения}
Значения NEXT, PRIOR, FIRST, LAST понятны без дополнительного пояснения. Значение ABSOLUTE N вызывает перемещение на N-ю строку, а значение RELATIVE N - перемещение на N строк вперед, если N - положительное число, и на N строк назад, если N -отрицательное число.
Если задано предложение INSENSITIVE (нечувствительный), то, пока курсор открыт, все изменения над данными курсора будут игнорироваться. Строки открытого курсора имеют определенный порядок. Для того чтобы установить нужный порядок, можно использовать в операторе SELECT предложение ORDER BY. В противном случае порядок устанавливается реализацией. Если задано предложение SCROLL, то не обязательно извлекать строки в том порядке, который задан при открытии. Курсоры могут быть двух типов: обновляемые и только для чтения. Чтобы курсор был обновляемым, он должен базироваться на одной и только одной таблице, не содержать предложения ORDER BY, не объявляться как INSENSITIVE или SCROLL. Курсор возвращается в закрытое состояние посредством использования оператора закрытия курсора CLOSE <имя курсора.>
Дата добавления: 2015-04-24; Просмотров: 430; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |