Оператор открытия курсора имеет следующий синтаксис:
OPEN <имя_курсора>
[USING <список базовых перёменных>]
Именно оператор
открытия курсора инициирует выполнение базового запроса, соответствующего описанию
курсора, заданному в операторе DECLARE ... CURSOR. При выполнении оператора
OPEN СУБД производит семантическую проверку курсора, то есть выполняет этапы
со 2 по 5 в алгоритме выполнения запросов (рис. 12.1), поэтому именно здесь
СУБД возвращает коды ошибок прикладной программе, сообщающие ей о результатах
выполнения базового запроса. Ошибки могут возникнуть в результате неправильного
задания имен нолей или имен исходных таблиц или при попытке извлечь данные из
таблиц, к которым данный пользователь не имеет доступа.
По стандарту
СУБД возвращает код завершения операции в специальной системной переменной SQLCODE.
В прикладной программе пользователь может анализировать эту переменную, что
необходимо делать после выполнения каждого оператора SQL. При неудачном выполнении
операции открытия курсора СУБД возвращает отрицательное значение SQLCODE.
В случае
удачного завершения выполнения оператора открытия курсора набор данных, сформированный
в результате базового запроса, остается доступным пользователю до момента выполнения
оператора закрытия курсора.
Однако надо
помнить, что СУБД автоматически закрывает все курсоры в случае завершения транзакции
(COMMIT) или отката транзакции (ROLLBACK). После того как курсор закрыт его
можно открыть снова, но при этом соответствующий запрос выполнится заново. Поэтому
допустимо, что содержимое первого курсора будет не соответствовать его содержимому
при повторном открытии, потому что за это время изменилось состояние БД.
Знаете ли Вы, что любой разумный человек скажет, что не может быть улыбки без кота и дыма без огня, что-то там, в космосе, должно быть, теплое, излучающее ЭМ-волны, соответствующее температуре 2.7ºК. Действительно, наблюдаемое космическое микроволновое излучение (CMB) есть тепловое излучение частиц эфира, имеющих температуру 2.7ºK. Еще в начале ХХ века великие химики и физики Д. И. Менделеев и Вальтер Нернст предсказали, что такое излучение (температура) должно обнаруживаться в космосе. В 1933 году проф. Эрих Регенер из Штуттгарта с помощью стратосферных зондов измерил эту температуру. Его измерения дали 2.8ºK - практически точное современное значение. Подробнее читайте в FAQ по эфирной физике.