Оператор открытия курсора имеет следующий синтаксис:
OPEN <имя_курсора>
[USING <список базовых перёменных>]
Именно оператор
открытия курсора инициирует выполнение базового запроса, соответствующего описанию
курсора, заданному в операторе DECLARE ... CURSOR. При выполнении оператора
OPEN СУБД производит семантическую проверку курсора, то есть выполняет этапы
со 2 по 5 в алгоритме выполнения запросов (рис. 12.1), поэтому именно здесь
СУБД возвращает коды ошибок прикладной программе, сообщающие ей о результатах
выполнения базового запроса. Ошибки могут возникнуть в результате неправильного
задания имен нолей или имен исходных таблиц или при попытке извлечь данные из
таблиц, к которым данный пользователь не имеет доступа.
По стандарту
СУБД возвращает код завершения операции в специальной системной переменной SQLCODE.
В прикладной программе пользователь может анализировать эту переменную, что
необходимо делать после выполнения каждого оператора SQL. При неудачном выполнении
операции открытия курсора СУБД возвращает отрицательное значение SQLCODE.
В случае
удачного завершения выполнения оператора открытия курсора набор данных, сформированный
в результате базового запроса, остается доступным пользователю до момента выполнения
оператора закрытия курсора.
Однако надо
помнить, что СУБД автоматически закрывает все курсоры в случае завершения транзакции
(COMMIT) или отката транзакции (ROLLBACK). После того как курсор закрыт его
можно открыть снова, но при этом соответствующий запрос выполнится заново. Поэтому
допустимо, что содержимое первого курсора будет не соответствовать его содержимому
при повторном открытии, потому что за это время изменилось состояние БД.
Знаете ли Вы, что в 1974 - 1980 годах профессор Стефан Маринов из г. Грац, Австрия, проделал серию экспериментов, в которых показал, что Земля движется по отношению к некоторой космической системе отсчета со скоростью 360±30 км/с, которая явно имеет какой-то абсолютный статус. Естественно, ему не давали нигде выступать и он вынужден был начать выпуск своего научного журнала "Deutsche Physik", где объяснял открытое им явление. Подробнее читайте в FAQ по эфирной физике.