DECLARE Debtor_reader_cursor INSENSITIVE CURSOR
FOR
SELECT READERS.FIRST_NAME, READERS.LAST_NAME, READERS.ADRES,
READERS.HOME_PHON, READERS_WORK_PHON, BOOKS.TITLE
FROM READERS, BOOKS, EXEMPLAR
WHERE READERS.READER_ID = EXEMPLAR.READER_ID AND
BOOKS.ISBN = EXEMPLARE.ISBN AND
EXEMPLAR.DATA_OUT > Getdate()
ORDER BY READERS.FIRST_NAME
FOR READ ONLY
Создание курсора
Приведите пожулуйста простенький пример по созданию курсора и извлечением из него данных оператором FETCH.
Цитата:
Originally posted by mag23
Приведите пожулуйста простенький пример по созданию курсора и извлечением из него данных оператором FETCH.
Приведите пожулуйста простенький пример по созданию курсора и извлечением из него данных оператором FETCH.
Оператор описания курсора:
Код:
Оператор извлечения очередной строки из курсора:
Код:
FETCH Debtor_reader_cursor into @FIRST_NAME,
@LAST_NAME, @ADRES, @HOME_PHON, @WORK_PHON, @TITLE
@LAST_NAME, @ADRES, @HOME_PHON, @WORK_PHON, @TITLE
Взято из книги Базы данных Т. Карпова стр. 255
Код:
-- Переменная курсора в которую записываем текущие -- значения
declare @NodeID int
-- объявляем курсор, если данные курсора не изменяются для быстродействия укажем опции "local read_only forward_olnly static"
delare Cur cursor local read_only forward_olnly static for
select NodeID from Nodes where ParentID = @ParentID
-- открываем курсор
open Cur
--организуем цикл по записям курсора
fetch next from Cur into @NodeID
while @@fetch_status = 0 begin
-- результаты вычислений в теле цикла вставляем в гипотетическую таблицу Res
insert into Res(NodeID)
values (@NodeID)
fetch next from Cur into @NodeID
end
-- закрываем курсор
close Cur
-- удаляем из памяти
deallocate Cur
declare @NodeID int
-- объявляем курсор, если данные курсора не изменяются для быстродействия укажем опции "local read_only forward_olnly static"
delare Cur cursor local read_only forward_olnly static for
select NodeID from Nodes where ParentID = @ParentID
-- открываем курсор
open Cur
--организуем цикл по записям курсора
fetch next from Cur into @NodeID
while @@fetch_status = 0 begin
-- результаты вычислений в теле цикла вставляем в гипотетическую таблицу Res
insert into Res(NodeID)
values (@NodeID)
fetch next from Cur into @NodeID
end
-- закрываем курсор
close Cur
-- удаляем из памяти
deallocate Cur