Оператор открытия курсора имеет следующий синтаксис:
OPEN <имя_курсора>
[USING <список базовых перёменных>]
Именно оператор
открытия курсора инициирует выполнение базового запроса, соответствующего описанию
курсора, заданному в операторе DECLARE ... CURSOR. При выполнении оператора
OPEN СУБД производит семантическую проверку курсора, то есть выполняет этапы
со 2 по 5 в алгоритме выполнения запросов (рис. 12.1), поэтому именно здесь
СУБД возвращает коды ошибок прикладной программе, сообщающие ей о результатах
выполнения базового запроса. Ошибки могут возникнуть в результате неправильного
задания имен нолей или имен исходных таблиц или при попытке извлечь данные из
таблиц, к которым данный пользователь не имеет доступа.
По стандарту
СУБД возвращает код завершения операции в специальной системной переменной SQLCODE.
В прикладной программе пользователь может анализировать эту переменную, что
необходимо делать после выполнения каждого оператора SQL. При неудачном выполнении
операции открытия курсора СУБД возвращает отрицательное значение SQLCODE.
В случае
удачного завершения выполнения оператора открытия курсора набор данных, сформированный
в результате базового запроса, остается доступным пользователю до момента выполнения
оператора закрытия курсора.
Однако надо
помнить, что СУБД автоматически закрывает все курсоры в случае завершения транзакции
(COMMIT) или отката транзакции (ROLLBACK). После того как курсор закрыт его
можно открыть снова, но при этом соответствующий запрос выполнится заново. Поэтому
допустимо, что содержимое первого курсора будет не соответствовать его содержимому
при повторном открытии, потому что за это время изменилось состояние БД.
Знаете ли Вы, что такое "усталость света"? Усталость света, анг. tired light - это явление потери энергии квантом электромагнитного излучения при прохождении космических расстояний, то же самое, что эффект красного смещения спектра далеких галактик, обнаруженный Эдвином Хабблом в 1926 г. На самом деле кванты света, проходя миллиарды световых лет, отдают свою энергию эфиру, "пустому пространству", так как он является реальной физической средой - носителем электромагнитных колебаний с ненулевой вязкостью или трением, и, следовательно, колебания в этой среде должны затухать с расходом энергии на трение. Трение это чрезвычайно мало, а потому эффект "старения света" или "красное смещение Хаббла" обнаруживается лишь на межгалактических расстояниях. Таким образом, свет далеких звезд не суммируется со светом ближних. Далекие звезды становятся красными, а совсем далекие уходят в радиодиапазон и перестают быть видимыми вообще. Это реально наблюдаемое явление астрономии глубокого космоса. Подробнее читайте в FAQ по эфирной физике.