Главная / Базы данных /
SQL и процедурно-ориентированные языки / Тест 9
SQL и процедурно-ориентированные языки - тест 9
Упражнение 1:
Номер 1
Какие из далее объявленных переменных
int var1;
EXEC SQL BEGIN DECLARE SECTION;
int var2;
char var3[10];
EXEC SQL END DECLARE SECTION;можно использовать в качестве INTO
-переменных встроенного SQL:
Ответ:
 (1) var1
 
 (2) var2
 
 (3) var3
 
Номер 2
Какую из далее объявленных переменных
int var1;
EXEC SQL BEGIN DECLARE SECTION;
int var2;
char var3[10];
EXEC SQL END DECLARE SECTION; можно использовать в качестве индикаторной переменной встроенного SQL:
Ответ:
 (1) var1
 
 (2) var2
 
 (3) var3
 
Номер 3
Какие из далее объявленных переменных
int var1;
EXEC SQL BEGIN DECLARE SECTION;
int var2;
char var3[10];
EXEC SQL END DECLARE SECTION;можно использовать в качестве переменных связи встроенного SQL:
Ответ:
 (1) var1
 
 (2) var2
 
 (3) var3
 
Упражнение 2:
Номер 1
Какое значение будет занесено в поле f2
оператором
EXEC SQL INSERT INTO tbl1 (f1,f2,f3)
VALUES( :f1,:f2:indf2, :f3:indf3); если индикаторная переменная indf2
равна нулю:
Ответ:
 (1) текущее значение переменной f2
; 
 (2) значение 0
 
 (3) значение NULL
 
Номер 2
Какое значение будет присвоено индикаторной переменной indf2
, используемой в операторе
EXEC SQL FETCH c1 INTO :f1,:f2
INDICATOR:indf2, :f3:indf3; если извлекаемое значение поля f2
равно NULL
:
Ответ:
 (1) NULL
 
 (2) 0
 
 (3) отрицательное значение 
Номер 3
Каким образом будет изменено значение в поле f2
оператором
EXEC SQL UPDATE tbl1 SET f1= :f1,f2=:f2:indf2; если индикаторная переменная indf2
имеет отрицательное значение:
Ответ:
 (1) будет занесено текущее значение переменной f2
; 
 (2) будет занесено значение 0
 
 (3) будет занесено значение NULL
 
Упражнение 3:
Номер 1
В каком случае оператор встроенного SQL
EXEC SQL SELECT f1,f2 FROM tbl1
INTO :f1,:f2 WHERE f2>100;не выдаст сообщения об ошибке:
Ответ:
 (1) существует только одна строка, удовлетворяющая указанному условию 
 (2) указанному условию удовлетворяют две строки 
 (3) указанному условию удовлетворяет произвольное число строк 
Номер 2
Укажите, какой из следующих курсоров можно использовать в позиционированном операторе UPDATE
:
Ответ:
 (1)
EXEC SQL DECLARE c1 CURSOR FOR
SELECT f1,f2,f3 FROM tbl1 WHERE f2>100; 
 (2)
EXEC SQL DECLARE c1 CURSOR FOR
SELECT f1,f2,f3 FROM tbl1 ORDER BY f1; 
 (3)
EXEC SQL DECLARE c1 CURSOR FOR
SELECT sum(f2) FROM tbl1; 
Номер 3
Какой из следующих операторов создает результирующий набор курсора c1
:
Ответ:
 (1)
EXEC SQL DECLARE c1 CURSOR FOR
SELECT f1,f2 FROM tbl1; 
 (2) EXEC SQL OPEN c1;
 
 (3) EXEC SQL FETCH c1 INTO :f1,:f2;
 
Упражнение 4:
Номер 1
Какие из далее объявленных переменных
int var1;
int var2;
EXEC SQL BEGIN DECLARE SECTION;
int var3;
EXEC SQL END DECLARE SECTION;можно использовать в качестве переменных связи встроенного SQL:
Ответ:
 (1) var1
 
 (2) var2
 
 (3) var3
 
Номер 2
Какое значение будет занесено в поле f2
оператором
EXEC SQL INSERT INTO tbl1 (f1,f2,f3)
VALUES( :f1,:f2:indf2, :f3:indf3);, если индикаторная переменная indf2
равна отрицательному значению:
Ответ:
 (1) текущее значение переменной f2
; 
 (2) значение 0
 
 (3) значение NULL
 
Номер 3
В каком случае при выполнении оператора встроенного
SQL EXEC SQL SELECT f1,f2,f3
FROM tbl1 INTO :f1,:f2,:f3 WHERE f2=50;не будет выдано сообщения об ошибке:
Ответ:
 (1) указанному условию удовлетворяют две строки 
 (2) существует только одна строка, удовлетворяющая указанному условию 
 (3) указанному условию удовлетворяет произвольное число строк 
Упражнение 5:
Номер 1
Какое значение будет присвоено индикаторной переменной indf3
, используемой в операторе
EXEC SQL FETCH c1 INTO :f1,:f2
INDICATOR:indf2, :f3:indf3; если извлекаемое значение поля f3
равно NULL
:
Ответ:
 (1) NULL
 
 (2) 0
 
 (3) отрицательное значение 
Номер 2
Укажите, какой из следующих курсоров можно использовать в позиционированном операторе UPDATE
:
Ответ:
 (1)
EXEC SQL DECLARE c1 CURSOR FOR
SELECT * FROM tbl1 ORDER BY f1; 
 (2)
EXEC SQL DECLARE c1 CURSOR FOR
SELECT * FROM tbl1; 
 (3)
EXEC SQL DECLARE c1 CURSOR FOR
SELECT COUNT() FROM tbl1; 
Номер 3
Какой из следующих операторов закрывает результирующий набор курсора c1
:
Ответ:
 (1)
EXEC SQL DECLARE c1 CURSOR FOR
SELECT f1,f2 FROM tbl1; 
 (2) EXEC SQL OPEN c1
; 
 (3) EXEC SQL FETCH c1 INTO :f1,:f2;
 
 (4) EXEC SQL CLOSE c1;