2.
Разработана процедура, возвращающая список телефонных
тарифов городов Поволжья.
CREATE PROC my_proc
@cur CURSOR VARYING OUTPUT
AS
SET @cur=CURSOR FORWARD_ONLY STATIC FOR
SELECT Название, Тариф, Регион
FROM Город
WHERE Регион=”Поволжье”
OPEN @cur
Вызов процедуры и вывод на печать названий городов из
выходного курсора осуществляется следующим образом:
DECLARE @my_cur CURSOR
DECLARE @n VARCHAR(20)
EXEC my_proc @cur=@my_cur OUTPUT
FETCH NEXT FROM @my_cur INTO @n
SELECT @n
WHILE (@@FETCH_STATUS=0)
BEGIN
FETCH NEXT FROM @my_cur INTO @n
SELECT @n
END
CLOSE @my_cur
DEALLOCATE @my_cur
Укажите правильные ответы.
Ошибок ни в процедуре, ни в ее вызове нет
Процедура создана правильно. При вызове процедуры в
обработке курсора дважды происходит обращение к первой
записи
В процедуре не следует открывать курсор. Он должен быть
открыт при вызове процедуры
Процедура создана правильно. При вызове процедуры для
обработки курсора в операторе
INTO список переменных не
соответствует полям оператора
SELECT в создании курсора в
процедуре
309
Лекция 13 Курсоры: принципы работы