Главная / Базы данных /
SQL и процедурно-ориентированные языки / Тест 14
SQL и процедурно-ориентированные языки - тест 14
Упражнение 1:
Номер 1
Какой из следующих операторов выполняет объявление явного курсора:
Ответ:
 (1) CURSOR
 
 (2) OPEN
 
 (3) FETCH
 
 (4) CLOSE
 
Номер 2
Какой оператор открывает курсор, создавая новый результирующий набор на базе указанного запроса:
Ответ:
 (1) CURSOR
 
 (2) OPEN
 
 (3) FETCH
 
 (4) CLOSE
 
Номер 3
Какой оператор выполняет извлечение строки из результирующего набора:
Ответ:
 (1) CURSOR
 
 (2) OPEN
 
 (3) FETCH
 
 (4) CLOSE
 
Упражнение 2:
Номер 1
Какие атрибуты курсора позволяют определить, была ли найдена строка, удовлетворяющая условию:
Ответ:
 (1) %ISOPEN
 
 (2) %FOUND
 
 (3) %NOTFOUND
 
 (4) %ROWCOUNT
 
Номер 2
Укажите, какой из фрагментов кода, использующих курсор, имеет правильный синтаксис:
Ответ:
 (1)
DECLARE
CURSOR c1 IS
SELECT f1, f2 FROM tbl2 WHERE f1 = 10;
BEGIN
FOR rec1 IN c1 LOOP INSERT INTO temp_tbl
VALUES (rec1.f2);
END LOOP;
COMMIT;
END; 
 (2)
DECLARE
CURSOR c1 IS
SELECT f1, f2 FROM tbl2 WHERE f1 = 10;
BEGIN
FOR c1 IN rec1 LOOP INSERT INTO temp_tbl
VALUES (rec1.f2);
END LOOP;
COMMIT;
END; 
Номер 3
Какой атрибут курсора возвращает номер текущей строки:
Ответ:
 (1) %NOTFOUND
 
 (2) %FOUND
 
 (3) %ROWCOUNT
 
Упражнение 3:
Номер 1
Какие ограничения накладываются на использование переменной курсора:
Ответ:
 (1) запрос, указываемый для переменной курсора оператором OPEN-FOR
, не может содержать фразы FOR UPDATE
 
 (2) переменной курсора не может быть присвоено значение NULL
 
 (3) для переменной курсора нельзя повторно выполнять оператор OPEN
, не закрыв предварительно результирующий набор оператором CLOSE
 
 (4) переменную курсора нельзя использовать вместо курсора в цикле FOR-IN-LOOP
 
Номер 2
Какой атрибут курсора позволяет определить, открыт ли курсор:
Ответ:
 (1) %FOUND
 
 (2) %ROWCOUNT
 
 (3) %ISOPEN
 
Номер 3
Какие действия выполнит СУБД Oracle при попытке повторно открыть курсор, определенный как
CURSOR c1 IS SELECT * FROM tbl1; который ранее уже был открыт оператором OPEN
:
Ответ:
 (1) никаких действий выполнено не будет 
 (2) курсор будет открыт заново 
 (3) будет инициировано исключение CURSOR_ALREADY_OPEN
 
Упражнение 4:
Номер 1
Какой из следующих операторов открывает результирующий набор для явного курсора:
Ответ:
 (1) CURSOR
 
 (2) OPEN
 
 (3) FETCH
 
 (4) CLOSE
 
Номер 2
Какой атрибут курсора позволяет определить количество строк в результирующем наборе:
Ответ:
 (1) %ISOPEN
 
 (2) %FOUND
 
 (3) %NOTFOUND
 
 (4) %ROWCOUNT
 
Номер 3
Какие ограничения накладываются на использование переменной курсора:
Ответ:
 (1) запрос, указываемый для переменной курсора оператором OPEN-FOR
, не может содержать фразы FOR UPDATE
 
 (2) переменную курсора нельзя указывать в операторе FETCH
 
 (3) для переменной курсора нельзя повторно выполнять оператор OPEN
, не закрыв предварительно результирующий набор оператором CLOSE
 
Упражнение 5:
Номер 1
Укажите, какой из фрагментов кода, использующих курсор, имеет правильный синтаксис:
Ответ:
 (1)
DECLARE
CURSOR c1 IS SELECT f1 FROM tbl1 ;
BEGIN
FOR rec1 IN c1 LOOP INSERT INTO tbl2
VALUES (rec1.f1);
END LOOP;
COMMIT;
END; 
 (2)
DECLARE
CURSOR c1 IS SELECT * FROM tbl2;
BEGIN
FOR c1 IN rec1 LOOP INSERT INTO tbl2
VALUES (rec1.f2);
END LOOP;
END; 
Номер 2
Если при неявном курсоре формируемый результирующий набор должен содержать более одной строки, то:
Ответ:
 (1) результирующий набор будет создан 
 (2) будет инициировано исключение TOO_MANY_ROWS
 
 (3) никаких действий выполнено не будет 
Номер 3
Какие действия выполнит СУБД Oracle при попытке повторно открыть курсор, указываемый переменной курсора:
Ответ:
 (1) никаких действий выполнено не будет 
 (2) курсор будет открыт заново 
 (3) будет инициировано исключение CURSOR_ALREADY_OPEN