Главная / Базы данных /
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