Вы находитесь на странице: 1из 83

1.Какова цель использования DBMS_OUTPUT.

PUT_LINE в блоке
PL/SQL?
c.Чтобы отобразить результаты, чтобы проверить, правильно ли работает
наш код

2.Предположим,вы настроили параметр процедуры с явным режимом


OUT.Что верно в отношении этого параметра?
с. Он не может иметь значения по умолчанию

3.Что плохого в следующем утверждении?


MERGE INTO emps e
USING new_emps ne
ON (e.employee_id=ne.employee_id)
WHEN MATCHED
THEN UPDATE
SET ne.salary=e.salary
WHEN NOT MATCHED
THEN INSERT VALUES
(ne.employee_id,ne.first_name,ne.last_name,…ne.salary,…);
а.Предложение INSERT должно содержать список столбцов, а также список
значений столбцов
e.Предложение SET пытается обновить исходную таблицу из целевой
таблицы. (*)

4.В чем одно из преимуществ использования курсора с параметрами?


е. Вы можете использовать один курсор для извлечения другого набора строк
при каждом открытии курсора
5.Джон создает таблицу с именем INVENTORY. Алла должна иметь
возможность запращивать ту же таблицу.Джон хочет,чтобы Алла
запращивала таблицу,не требуя указания схемы таблицы.Что из
следующего должен создать Джон?
а.Индекс

6.Где в блоке PL/SQL? Закодировать оператор COMMIT?


а. Нигде,оператор COMMIT должен находиться вне блока

7.Пользователь REYHAN – владелец схкмы Пользователь REYHAN


создает следующию процедуру
CREATE PROCEDURE proct AUTHID CURRENT_USER
IS
v_count NUMBER;
BEGIN
SELECT COUNT(*)INTO v_count
FROM tom.employees;
END;
Пользователь BILL хочет выполнить эту процедуру.Какие привилегии
понадобятся BILL?
e.EXECUTE on REYHAN PROC1 and SELECT on TOM EMPLOYEES

8.В ситуации, когда явно открыта транзакция ,но нет явных команд ее
завершения ''commit'' или '' rollback'', СУБД...
с.оставит транзакцию открытой,включая все необходимые блокировки,до
тех пор , пока не получит команду ''commit'' или '' rollback''
9.Если сегодняшняя дата -14th June 2022, то какой оператор правильно
преобразует сегодняшнюю дату в значение. June 14,2022?
a.TO_CHAR(sysdate, 'Month DD, YYYY')
10.Если сегодня 17 th April 2021 что будет отоброжатся при сурагы
корнби калган до конц до конца
d. 30-Apr-2021

11.Пользователю Alice базы данных ADMDB необходимо выбрать


информацию из таблицы STUDENTS пользователя MARY базы данных
STUDOB.Команда выполненияпоставленной задачи
b. SELECT * FROM mary.students@studdb;
12.Проанализируйте следующий блок
DECLARE
v_date DATE:= SYSDATE;
BEGIN
WHILE v_date < LAST_DAY(v_date) LOOP
v_date:= v_date + 1;
END LOOP;
DBMS_OUTPUT.PUT_LINE(v_date);
END;
Если сегодня 17th April 2021, что будет отоброжаться при выполнении
этого блока?
d. 30-Apr-2021

13.Какую команду вы бы использовали,чтобы узнать, включены или


отключены ваши триггеры?
b. SELECT trigger_name,status
FROM USER_TRIGGERS;
14.Как правильно называть структуры CASE,LOOP,WHILE и IF-THEN-
ELSE?
А . Управляющая структура

15.Что из перечисленного не может быть использовано в качестве типа


данных параметра процедуры?
А . Название другой процедуры

16.Уникальные индексы автоматически создаются для столбцов ,


которые имеют два типа ограничений?
d. Уникальный и Первичный ключ

17.Пакет содержит как публичные,так и частные подпограммы.Какое


одно из следующих утверждений является верным?
А . Весь пакет загружается в память при первом вызове любой
подпрограммы в пакете

18. Транзакции заканчивается командой?


b) Commit

19. Какой режим параметров процедуры используется по умолчанию?


d) In

20.Изучите следующий триггер, который должен вызвать ошибку


приложения, если пользователь попытается обновить фамилию сотрудника.
Но он должен позволять обновлять все остальные столбцы таблицы
EMPLOYEES. Что нужно закодировать в строке А?

CREATE TRIGGER stop_ln_trigg


BEFORE UPDATE ON employees
BEGIN
--Line A
RAISE_APPLICATION_ERROR (-20201,'Updating last name not allowed');
END IF;
END;
C. IF UPDATING('LAST_NAME') THEN ()

21. Выберите оператор, который будет выполняться без ошибок

a) Select region_id, COUNT(country_id)


From wf_countries
Where region_id<15
Group by region_id;

22. Команда вывода имен всех таблиц пользователя:


a) Select table_name from user_tables;

23. Выберите правильный метод объявления переменной, ранее объявленной


переменной или столбца базы данных
a) %TYPE

24. Когда следующий код будет выполнен, сколько строк вывода будет
отображаться?
BEGIN
FOR i IN 1..5 LOOP
FOR j IN 1..8 LOOP
DBMS_OUTPUT.PUT_LINE(i || ',' || j);
END LOOP;
DBMS_OUTPUT.PUT_LINE(i);
END LOOP;
END;

C.40

25. Вставку значений, возвращенных подзапросом одновременно в несколько


таблиц, возможно выполнить при помощи команд
a) Insert…All…When…Then…

26. Какие строки будут удалены из таблицы Employees при выполнении


следующего кода?
DECLARE
salary employees.salary%TYPE := 12000;
BEGIN
DELETE FROM employeesWHERE salary > salary;
END;
А.Ни одна строка
27. В отделе с идентификатором 75 нет сотрудников. В department_id 75 не
сотрудников. Что из следующего Не является допустимым курсором цикла
For с подзапросом?
a) Ничего из перечисленного. Все они действительны

28. Посмотрите на следующий блок PL/SQL:


Look at the following block:
DECLARE
v_date DATE := SYSDATE;
BEGIN
WHILE v_date < LAST_DAY(v_date) LOOP
v_date := v_date + 1;
END LOOP;
DBMS_OUTPUT.PUT_LINE(v_date);
END;
Если сегодняшняя дата 17 апреля 2022 г., что будет отображаться при
выполнении этого блока?
a) 4/30/2022

29. Какой операторSQL не может использовать неявный курсор?


a) Оператор Select, возвращающий несколько строк

30. Проанализируйте следующий блок:


DECLARE
v_date DATE := SYSDATE;
BEGIN
WHILE v_date < LAST_DAY(v_date) LOOP
v_date := v_date + 1;
END LOOP;
DBMS_OUTPUT.PUT_LINE(v_date);
END;
Усли сегодня 17th April 2021, что будет отображаться при выполнении этого
блока?
a) 4/30/2022

31. Какие из следующих объявлений переменной является


недействительным?
a) V_pages Constant number;
32. Пакет OLDPACK находится в вашей схеме. Что произойдет, когда будет
выполнен следующий оператор? DROP PACKAGE oldpack;
a) И спефикация, и тело будут удалены

33. Какие атрибуты курсора возвращают полезную информацию о выполнии


инструкции манипулирования курсором? (3 правильных)
a) %FOUND
b) %ROWCOUNT
c) %NOTFOUND

34. Групповые функции, работающие со всеми типами данных


a) COUNT, MAX, MIN

35. Оцените это утверждение


CREATE SEQUENCE line_item_id_seq INCREMENT BY -1;
Какое из утверждений верно?
a) Последовательность будет генерировать последовательные убывающие
значения

36. Вам нужен цикл, который отсчитывает назад от 10 до 1. Как вы это


кодируете?
a) FOR i IN REVERSE 1…10 LOOP

37. Что из перечисленного не может быть использовано в качестве типа


данных параметра процедуры?
a) Название другой процедуры

38. Какова цель использования DBMS_OUTPUT.PUT_LINE в блоке PL/SQL?


a) Чтобы отобразить результаты, чтобы проверить, правильно ли работает
наш код

39. Пакет HPPACK содержит следующую публичную функцию


FUNCTION empfunc (p_deptno NUMBER) RETURN NUMBER IS
BEGIN
UPDATE employees SET salary=salary*1.1
WHERE department_id=p_deptno;
RETURN SQL%ROWCOUNT;
END empfunc;
Что произойдет, когда будет выполнен следующий оператор SQL?
SELECT department_name, hrpack.empfunc(department_id) FROM departments;
a) Выбор будет успешным, потому что он ссылается на другую таблицу,
отличную от функции
40. В департаменте 50 работают пять сотрудников. Создается следующий
триггер:
CREATE TRIGGER upd_emp
AFTER UPDATE ON employees
BEGIN
INSERT INTO audit_table VALUES (USER,SYSDATE);
END;
Теперь пользователь выполняет кол:
UPDATE employees SET salary=salary*1.1
WHERE department_id=50;
Сколько срок будет вставлено в audit_table?
a) Одна

41. В чем одно из преимуществ использования курсора с параметрами?


a) Вы можете использовать один курсор для извлечения другого набора
строк при каждом открытии курсора

42. Объявлен следующий курсор:


CURSOR c_curs (p_param VARCHAR2) IS
SELECT * FROM mytable
WHERE mycolumn=p_param;
Какой из следующих операторов откроет курсор успешно?
a) OPEN c_curs(‘ABC’);

43. В ситуации, когда явно открыта транзакция, но нет явных команд ее


завершения “commit” или “rollback” СУБД…
a) Оставит транзакцию открытой, включая все необходимые блокировки,
до тех пор, пока не получит команду “commit” или “rollback”

44. Таблица EMPLOYEES содержит следующие столбцы

LAST_NAME VARCHAR2 (15) NOT NULL


FIRST_NAME VARCHAR2 (10) NOT NULL
EMPLOYEE_ID NUMBER (4) NOT NULL
HIRE_DATE DATE NOT NULL
Вам нужно удалить столбец EMPLOYEE_ID из таблицы EMPLOYEES.
Какой оператор можно использовать для выполнения этой задачи?
a) ALTER TABLE employees DROP COLUMN employee_id;
45. Даны ключевые слова HAVING, SELECT, FROM, ORDER BY, WHERE,
GROU BY. Какая из следующих последовательностей иллюстрирует
правильный порядок ключевых слов в запросе sql
a)SELECT->FROM->WHERE-> GROUP BY->HAVING->ORDER BY

46. Вам нужно создать триггер, который будет срабатывать всякий раз, когда
обновляется зарплата сотрудника или job_id, но не при обновлении любого
другого столбца таблицы EMPLOYEES. Какой из следующих синтаксисов
является правильным для этого
a) CREATE TRIGGER emp_upd_trigg AFTER UPDATE OF salary, job_id
ON employees BEGIN…

47. Пакет содержит как публичные, так и частные подпрограммы. Какое одно
из следующих утверждений является верным?
a) Весь пакет загружается в память при первом вызове любой
подпрограммы в пакете

48.Какой из этих операторов SQL может быьб непосредственно включен в


исполняемый блок PL/SQL?
a.DELETE FROM employees WHERE department_id=60

49.Выберите правильный синтаксис для создания процедуры с именем


get_name с двумя значениями p_id и p_name.
a.CREATE PROCEDURE get_name (p_id NUMBER,p_name VARCHAR2) IS…

50.Выберите правильное утверждение


a.SELECT first_name INTO v_fname FROM employees WHERE
employee_id=200;

51.Вам необходимо обьявить переменную для хранения значения, которое


было считано из поля SALARY таблицы EMPLOYEES. Что из следующего
является преимуществом объявления переменной как employees.salary
%TYPE?
a.Если поле SALARY будет изменено позже, код PL/SQL изменять не нужно

52.Процелура включает в себя следующий кол


CURSOR loc_curs
IS SELECT location_id, city, country_id
FROM locations;
Какие из следующих изменений в таблице LOCATIONS позволят успешно
перекомпилировать процедуру без редактирования ее кода?(Выберите два.)
a ALTER TABLE locations DROP COLUMN postal_code;
b ALTER TABLE locations ADD (climate VARCHAR2(30));

53.В СУБД Oracle пол ролью понимается


a. набор привилегии

54.Изучите следующий триггер, который должен вызвать ошибку


предложения, если пользователь попытается обновить фамилию сотрудника.
Но он должен позволять обновлять все остальные столбцы таблицы
EMPLOYEES. Что нужно закодировать в строке А?
---ДЫМ ЖОК—И--- НЕПОНЯТНО--

55. вы создаете таблицу EMPLOYEES. Эта таблица должна содержать


столбец COMMISSION_PCT и использовать значение 10 процентов, если при
вставке записи значение комиссии не указывается. Какую строку следует
включить в оператор CREATE TABLE, чтобы выполнить эту задачу?
С)commission_pct NUMBER(4,2) DEFAULT 0.10

56.Для чего в SQL используются aliases?


С)для назначения имени источнику данных в запросе при использовании
выражения в качестве источника или для упрощения структуры запросов

57.Какое утверждение завершится неудачей?


a)grant insert, update on employees to tom, susan;

58.Какое из следующих утверждений объясняет различие между процедурой


и функцией?
С)функция может использоваться внутри оператора SQL, а процедура нет

59. какой из этих операторов SQL может быть непосредственно включен в


исполняемый блок PL/SQL?
c)delete from employees where department_id=60;
60.Вам необходимо создать инструкцию SELECT, содержащую подзапрос с
несколькими строками. Какие операторы сравнения вы можете
использовать?
b)IN, ANY and ALL

61.Что из перечисленного не может быть использовано в качестве типа


данных параметров процедуры?
С) Название другой процедуры

62.Какое из следующих объявлений переменной является


недействительным?
a) v_pages CONSTANT NUMBER;

64. Вы хотите создать функцию, которая удаляет таблицу. Вы пишете


следующий код:
CREATE OR REPLACE FUNCTION droptab
(p_tab_name IN VARCHAR2)
RETURN BOOLEAN IS
BEGIN
DROP TABLE p_tab_name;
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN RETURN FALSE;
END;
Почему эта функция не будет успешно скомпилирована?
Б)потому что компилятор PL/SQL не может проверить, является ли аргумент
p_tab_name допустимым именем таблицы

65.какое представление словаря показывает подробный код тела триггера?


d)user_triggers
66.Выполнение транзакции заканчивается командой?
b)commit

67.Схема пользователя u01 в СУБД Oracle создается при выполнении


команды:
b)create user u01 profile “DEFAULT” identified by u1_02p;

68.Какие из этих исключений могут быть обработаны разделом исключений


в блоке PL/SQL?
Б)все перечисленное

69.Что не так со следующим кодом?


BEGIN
FOR emp_rec IN
(select*from employees where rownum<10) loop
Dbms_output.put_line (emp_rec%rowcount || emp_rec.last_name);
End loop;
End;
C)вы не можете ссылаться на %ROWCOUNT с помощью курсора для цикла с
помощью подзапроса

70.в чем одно из преимуществ использования курсора с параметрами?


Е)вы можете использовать один курсор для извлечения другого набора строк
при каждом открытии курсора

71.Предположим, вы настроили параметр процедуры с явным режимом OUT.


Что верно в отношении этого параметра?
С)он не может иметь значения по умолчанию
72. Что из перечисленного не может быть закодировано в теле триггера
DML?(Выберите два)
C.IF OTHERS THEN
D.IF SELECTING THEN

73. Какая команда отменяет привилегии:


A. REVOKE

74.Какие из следующих утверждений о пользовательских записях PL/SQL


неверны?
A.Она может быть использована в качестве параметра OUT в процедуре
пакета
B.Её можно определить как NOT NULL
C.Это может быть компонент другой записи PL/SQL
D.Это не то же самое, что строка в таблице базы данных

F.(осы инт шыккан)Он должен содержать один или несколько компонентов,


но все компоненты должны иметь скалярные типы данных. (*)

75. Какое утверждение является ложным?


C. Предлжение WITH снижает произвоительность

76. Пакет NEWPACK содержит несколько процедур и функций, включая


частную функцию PRIVFUNC. Откуда можно вызвать PRIVFUNC?
A. От любой процедуры или функции NEWPACK

77. Джон создает таблицу с именем INVENTORY. Алла должна иметь


возможность запрашивать ту же таблицу, не требуя указания схемы таблицы.
Что из следующего должен создать Джон ?
C. Индекс

78. Какой из следующих вариантов лучше всего описывает транзакцию базы


данных ?
A. Связанный набор операторов SQL DML, которые должны выполняться
либо полностью, либо вообще не выполняться

79. Попытка обновить зарплату сотрудника до отрицательного значения


нарушит контрольное ограничение и вызовет исключение ORA 02290.
Какое из следующих определений является правильным определением
обработчика для этого исключения?
A.DECLARE
e_sal_excep EXCEPTION
PRAGMA EXCEPTION_INIT(e_sal_excep, -02290);
80. Бизнес-правило гласит, что заработная плата сотрудника не может быть
больше 99 999,99 или меньше 0. Лучший способ обеспечить соблюдение
этого правила-использовать
E. A check constraint

81. Пользователи A и B вызывают одну и ту же процедуру из пакета для


инициализации глобальной переменной my_pkg.g_var. Какое значение будет
у my_pkg.g_var для пользователя А в точке А ?

User A: my_pkg.g_var is 10;


User B: my_pkg.g_var is 10;
User A: my_pkg.g_var is 50;
User B: my_pkg.g_var is 25;
Point A

a. 50

82. Что из перечисленного ниже не является символьным типом данных?


A. BOOLEAN

83. Какое утверждение лучше всего подходит для строки в следующем


примере?

DECLARE
v_more_rows_exist BOOLEAN:=TRUE;
BEGIN
--Line 1
LOOP
v_more_rows_exist:=curs_pkg.fetch_n_rows(3);
DBMS_OUTPUT.PUT_LINE(‘----------’);
EXIT WHEN NOT v_more_rows_exist;
END LOOP;
curs_pkg.close_curs;
END;

A. curs_pkg.open_curs

84. Какой из этих операторов SQL может бвть непосредственно влючен в


исполняемый блок PL/SQL?
a. UPDATE employees SET last_name = ‘Smith’

85. Какой из этих операторов SQL может быть непосредственно включен в


исполняемый блок PL/SQL?
d. DELETE FROM employees WHERE department_id-60;
86. Что плохого в следующем утверждении?
MERGE INTO emps e
USING new_emps ne
ON (e.employee_d=ne.employeeid)
when matched
THEN UPDATE
SET ne. salary=e.salary
when not matched
THEN INSERT VALUES
(ne.employee_id, ne.first_name, ne.last_name, … ne.salary, …);

d. Предложение SET пытается обновить исходную таблицу из целевой


таблицы

87. Пользовательское исключение может быть вызвано-


1) В разделе декларации
2) В исполняемом разделе
3) В разделе исключений

88. 3(емес тоочно)


b. 2 и 3---Осы сиякты
с. 1 и 2
d. 2
е.1 и 3

89. Какие из перечисленных ниже причин являются вескими для создания и


использования пакетов?
1) связанные процедуры, функции и переменные могут быть струппированы
вместе как единое целое;
2) мы можем перекомпилировать тело пакета без необходимости
перекомпилировать спецификацию;
3) мы можем создавать пакеты без необходимости каких-либо системных
привилегий;
4) мы можем объявить индекс по таблицам и непользоопать их в качестве
параметров;

b 1,2 и 4

90. Необходимо вычислить общее количество начальников без вывода


информацип о них, сучетом того, что у начальника может быть
несколько подчиненных, а некоторые сотрудники не имеют начальника
Поставленную задачу выполнит запрос:
b SELECT COUNT(DISTINCT mgr) FROM work WHERE mgr IS NOT NULL;
91. Что из перечисленного не может быть закодировано в теле тригтера
DML?
b. if selecting then

92. Какая команда отменяет привилеги?


e. Revoke

93. Какие строки будутудалены из таблишы EMPLOYEES при выполнени


следующего кода?
Salary employees.salary%TYPE:=12000;
begin
DELETE FROM employees WHEREsalary>salary:
END;
d. Ни одна строка

94. Пакет NEWPACК содержит несколько процедури функций, включая


частную функцию PRIVFUNC. Откуда можно вызвать PRIVFUNC?
b. От любой процедуры или функшиии NEWPACK

95. Вам необходимо объявить переменную для хранения значения, которое


было считано из поля SALARY таблицы EMPLOYEES Что из
следующего является преимуществом объявления переменной как employees
salary%TYPE?
A.Если столбец ЗАРАБОТНОЙ ПЛАТЫ будет изменен позже, код PL/SQL
изменять не нужно.

96. Процедура PL/SQLе именем MYPROC уже создана и хранится в базе


данных Какой из следующих способов успешно воссоздаст
процедуру послевнесения некоторых изменений в код?
b. CREATE OR REPLACE PROCEDURE myproc IS…

97. TO_NUMBER, TO_CHAR II TO_DATE-все это:


a. Явные функции преобразования

98. Вам нужно получить следующее доступное значение для


последовательности SALES_IDХ Что бы вы включили в ваш оператор SQL?
d sales_idх.NEXTVAL

99. Дана команда:


ALTER USER Sonya IDENTIFIED BY Wvu88;
Действие, выполняемое командой-…
Отметить
вопрос
е.изменение пароля пользовател

1. Найдите команду для организации точки проверки внутри транзакции


Save point
2. Часть общей памяти, в которую разделяют между собой все серверные
процессы (включая фоновые )-..
System Global Area
3. Как выбрать все записи из таблицы «Persons» , где значение поля «First
Name» начинается с буквы «а»?
Select * from Persons Where FirstName=’a%’
4. Найдите оператора проверки того, относится ли данное значение к
указанному диапазону?
Between
5. Как называется группа команд, управляемых транзакцией?
TCL
6. В SQL*PLUS команда для замены в строке подстроки ‘старая ’ строкой
‘новая ’:
Change
7. Символ *;* в SQL*PLUS обозначает:
Окончание ввода команды SQL
8. Для определения первичного ключа используем
Primary key
9. Совокупность объектов пользователя в СУБД называется :
Схема пользователя
10. Как называется группа команд , входящих в язык , использующие
данные для манипуляции?
DML
11. Для удаления таблицы , которая содержит первичные или уникальные
ключи , на которые ссылаются во внешних ключах другие таблицы,
необходимо использовать команду :
Drop Table emp Cascade Constraints
12. Какие команды языка SQL используется для создания таблиц?
Create table
13. Для группирования записи используем
Group by
14. Удаление полей из таблицы:
Alter table Chair Drop Column Chair_Cab
15. Какой оператор используется для исключения повторяющихся
значений?
Distinct
16. Найдите команду для удаления всех изменений, в теле транзакций:
Rollback
17. Найдите команду для ввода новых записей в таблицу, относящуюся к
группе DML:
Insert
18. Как выбрать все записи из таблицы “Persons”, упорядоченных по
полю “Fisrt Name” в обратном порядке?
Select * From Persons Order by First Name DESC
19. В таблице , относящийся к группе DML , найдите команду , которая
выбирает нужные строки (информацию):
Select
20. Файлы, в которые Oracle записывает все изменения, проведенные с БД
которые могут использоваться для выполнения восстановления - …
Файлы оперативного журнала (Redo log file)
21. При создании табличного пространства : Create TableSpace testo1
DataFile’/pasx02/oradata/pasx/test01_01.dbf’ Size 100M Uniform; Oracle
по умолчанию создаст унифицированные экстенты размером в …
1 Мбайт
22. Какой оператор будет выполнен первым в данном запросе?
*
23. СУБД – это
Специальный программный комплекс для обеспечения доступа к
данным и управления ими
24. Команда для удаления табличного пространства test01, которое
включает таблицы или индексы на момент ввода команды Drop
TableSpace:
DROP TABLESPACE test01 INCLUDING CONTENTS; 
25. Найдите команду для удаления записей в таблице, относящийся к
группе DML:
Delete
26. Команда установки длины внутреннего буфера строки ответа в
SQL*Plus:
Set LineSize
27. Для выбора записи по условию используем
Where
28. Для сортировки записи используем
Order by
29. Компонент SGA , содержащий библиотечный кэш для хранения
разобранного SQL и PL/SQL кода готового к использованию всеми
пользователями и кэш словаря данных, который хранит всю
информацию словаря-
Разделенный пул
30. Пользователю Alice базы данных ADMDB необходимо выбрать
информацию из таблицы Students пользователю SCOTT базы данных
STUDDB. Команда выполнения поставленной задачи:
Select * from scott.students@studdb;
31. Применение явного курсора. Какой последовательности действий
следует придерживаться при работе с явными курсорами?
Объявить курсор,открыть курсор, загрузить данные, закрыть
курсор
32. Параметр, позволяющий перемещать объекты из одной схемы в
другую
REMAP_SCHEMA
33. Какой запрос выберет студентов с оценками между 3 и 5?
SELECT * FROM   Progress WHERE Ocenka BETWEEN 3 AND 5
34. Объект базы данных, который используется для извлечения
информации из одной или нескольких таблиц или для выполнения
определенных действий с данными
запрос
35. Запрос Select dept_no, AVG(MONTHS_BETWEEN(SYSDATE,hiredate))
from emp where AVG(months_between(sysdate,hiredate))>60 group by
dept_no order by avg(months_between(sysdate,hiredate)). …. Запрос SQL
вызывает ошибку.
групповые функции нельзя использовать в предложении
WHERE
36. Логическая единица работы , состоящая из одного или более
операторов SQL.
Транзакция
37. Какой из процессов управляет получением данных из Oracle для
пользователя, выбирающего данных из базы данных Oracle?
Серверный процесс получает информацию для пользователя.
38. Вам требуется найти, где в базе данных Oracle хранятся таблицы
словаря данных. В каком из следующих табличных пространств
находятся таблицы, содержащие информацию о базе данных Oracle,
например имена таблиц, пользователи и оперативные сегменты
отмены?
System
39. Какой порядок следования конструкций в запросе является
правильным?
Select from where group by having order by
40. Классификация баз данных. Базы данных подразделяются на :
централизованные и распределенные
41. Какое из следующих утверждений является верным?
Получить информацию об ошибках компиляции подпрограммы
можно выполнив команду SHOW ERRORS или выбрав данные из
представления USER_ERRORS
42. Какой пакет позволяет выполнять программы PL/SQL по расписанию?
DBMS_JOB
43. Ниже приведены утверждения о вложенных блоках PL/SQL. Какое из
них является правильным?
Переменные, объявленные в родительском блоке, доступны из
вложенных блоков
44. Какие 2 утверждения являются верными?
Ограничения могут созданы вместе с таблицей. Ограничения
могут быть созданы после создания таблицы
45. Какое из приведённых ниже утверждений является верным?
Формальные параметры, передающиеся как IN OUT, не могут
быть заданы выражением по умолчанию
46. Вы создали процедуру с ошибками компиляции. Какими двумя
способами возможно получить сведения об ошибках?
Выполнить команду SHOW ERRORS. Выбрать информацию об
ошибке из USER_ERRORS
47. Какие 2 привилегии относятся к системному уровню защиты?
ALTER
DROP
48. Каким образом можно добавить внешний ключ в поле dept_no в
таблице EMP, указывающий на поле id таблицы DEPT?
Использовать команду ALTER TABLE в предложении ADD для
таблицы EMP
49. Какое из представлений содержит информацию об ошибках
компиляции триггера?
USER_ERRORS
50. Какой тип исключений можно выбрать для реализации бизнес-
правила?
Пользовательское исключение
51. Вы случайно удалили файл, в котором хранился текст процедуры
do_some. Какой оператор необходимо выполнить, чтобы извлечь текст
процедуры из словаря данных?
select text from ucer_source where name=’do_some’ order by line
52. Пользователь забыл свой пароль. Какой командой можно установить
новый пароль для пользователя alex?
Администратор базы данных должен выполнить команду:
ALTER USER alex IDENTIFIED BY lion
53. Необходимо создать функцию для вызова из операторов SQL. Какой
фрагмент кода позволит решить поставленную задачу?
Create or replace function calculate(p_id number) return number
54. Следуя нижеперечисленным утверждениям можно уменьшить
количество ошибочных перекомпиляций, возникающих в результате
зависимостей. Какое из утверждений является неверным?
Обращаться к функциям как имя_пакета.имя_функции
55. Каким образом можно разрешить использование ранее запрещенного
триггера auth_emp, выполняющегося для таблицы emp?
Alter trigger auth_emp enable;
56. В течение какого времени остаются определенными переменные
подстановки, заданные командой DEFINE?
До окончания сессии
57. Что из перечисленного ниже НЕ является объектом схемы?
Роль
58. Вы хотите найти сотрудников-однофамильцев. Какой запрос позволит
решить поставленную задачу?
Select e.first_name, e.last_name, e.department_id,e.job_id from
employees e, employees p where e.last_name=p.last_name and
e.employee_id<>p.employee_id
59. База данных содержит следующие таблицы и поля:
employees(employee_id, first_name, last_name, salary, manager_id,
department_id), departments(department_id, department_name, manager_id,
location_id). Необходимо составить отчет, содержащий имена всех
сотрудников, и названия отделений, в которых они работают. В этот
отчет не должны быть включены те сотрудники, которые не приписаны
ни к одному из отделений. Однако отчет должен содержать названия
отделений без сотрудников. Какой запрос позволит решить
поставленную задачу?
Select first_name ||last_name name, department_name from employees
e right join deparments d on (e.department_id=d.department_id)
60. База данных содержит следующие таблицы и поля:
employees(employee_id, first_name, last_name, salary, department_id),
departments(department_id, department_name, location_id),
locations(location_id, street_address, city). Необходимо выяснить
название и адрес отделения, в котором работает сотрудник с номером
117. Какой запрос позволит решить поставленную задачу?
Select d.department_name. l.city, l.street address from employees e,
department d, location l where e.department_id=d.department_id and
d.location_id=l.location_id and e.employee_id =117;
61. Какие две функции являются числовыми?
Sign mod
62. Вы решили полностью очистить таблицу STUDENT, но структура
таблицы вам понадобится в будущем. Ограничения ссылочной
целостности присутствуют. Какая из перечисленных ниже команд
позволит решить поставленную задачу?
Truncate table student;
63. Команда разбиения выходных данных из страницы в SQL*plus
  SET PAGESIZE 
64. Команда, которая используется для выбора значений данных из
определенного промежутка
Between
65. Причиной ошибки выполнения запроса select product_id, name
FROM products
WHERE EXISTS IN (SELECT * FROM types
WHERE types.type = products.type
AND descr <> 'Household')
AND price >= 50.57; является то , что:
ключевое слово IN не должно использоваться в сочетании с
ключевым словом EXISTS 
66. Как называется уникальный идентификатор , присваиваемый
подключению пользователя на момент его работы с сервером,
изменяющий сессию?
Uid
67. Какой из приведенных ниже операторов успешно добавляет явно
именованное ограничение в таблицу Employees?
68. Строковая функция, которая изменяет регистр символов строкового
аргумента, переводя первую букву каждого слова строки в верхний
регистр , а остальные буквы – в нижний:
INITCAP(СТРОКА1)
69. Дана команда SQL FlashBack Table s_region To Before Drop. Результат
действия команды –
Восстановления таблицы из корзины (Recycle Bin)
70. Параметр, позволяющий перемещать объекты из одной схемы в
другую
Remap_Schema
71. Для определения внешнего ключа используем
Foreign key
72. Фоновый процесс, пишущий содержимое буфера журнала повторного
выполнения в файлы онлайнового журнала повторного выполнения - ..
LGWR
73. Команда создания постоянного табличного пространства
Create TableSpace test01 DataFile ‘/pasx02/oradata/pasx/test01.dbf’
size 500M
74. Проблема, возникающая , когда транзакция читает данные ,
обновленные продолжающимися активными транзакциями , которые
еще не были зафиксированы в базе данных - …
Проблема грязного чтения
75. Для создания новой таблицы в существующей базе данных
используют команду:
Create table
76. Команда удаления ограничения первичного ключа таблицы
Employees(Employee_id_pk) и всех зависимых ограничений:
Alter table employee drop primary key cascade;
77. Совокупность объектов пользователя в СУБД называется …
Схема пользователя
78. Добавление в таблицу Chair поля Chair_cab:
ALTER  TABLE Chair ADD   Chair_Cab char(10) not null;
79. Какой оператор мы используем для подтверждения того, что данное
значение существует в указанном списке?
In
80. Дана команда: Alter user Alapati Identified by Alap54, действие ,
выполняемое командой - …
Изменение пароля пользователя
81. Команда задания формата выдачи данных столбца на экране в
SQL*Plus:
Column
82. Роль пользователя – это ..
Набор привилегий на выполнение предложений SQL и/или доступ
к объектам схемы
83. Команда запуска SQL*Plus в командной строке операционной
системы :
SQLPLUS sq01/p01
84. Как выбрать все записи из таблицы “Persons ”, где значение поля
“FirstName” ровно “Peter” и “LastName” ровно “Jackson”?
Select * From Persons Where FirstName=’Peter’ and
LastName=’Jackson’
85. Каковы отношения между табличными пространствами и файлами
данных в базе данных Oracle?
Одно табличное пространство может иметь много файлов данных
86. Для определения в таблице Chair первичного ключа:
ALTER TABLE Chair ADD  CONSTRAINT  PK_Chair  PRIMARY
KEY (Chair_ID)
87. Специальный класс сохраненных процедур, включаемый в работу
автоматически при вводе, изменении или удалении данных в таблицы
называются:
Триггер
88. Какой скрипт создает словарь базы данных?
catalog.sql
89. Транзакция :
Выполнение всех операций
90. Команда для объявления переменных
Declare
91.  Для чего в SQL используется оператор PRIVILEGUE?
Такого оператора не существует
92. Напишите запрос, который будет возвращать значения городов из
таблицы «Countries».
SELECT City FROM Countries
93.  Для чего в SQL используются aliases?
Для назначения имени источнику данных в запросе при
использовании выражения в качестве источника данных или
для упрощения структуры запросов
94. Оператор REVOKE предназначен для:
Отзыва у пользователя или группы пользователей выданных
ранее разрешений

95. Напишите запрос, возвращающий значения из колонки


«FirstName» таблицы «Users».
SELECT FirstName FROM Users
96. Напишите запрос, возвращающий информацию о заказчиках,
проживающих в одном из городов: Москва, Тбилиси, Львов.
SELECT * FROM Customers WHERE City IN (‘Moscow’,
‘Tbilisi’, ‘Lvov’)
97. Совокупность столбцов таблицы в СУБД называется ...
  схема таблицы

В пакете общедоступные компоненты объявляются в спецификации, а


частные компоненты - нет. Правда или ложь?

♦Правда (*)

♦ Ложь

2. Что из следующего отобразит подробный код подпрограмм в пакете


DEPTPACK в вашей схеме?
♦ВЫБЕРИТЕ текст ИЗ USER_SOURCE

WHERE name = 'DEPTPACK'

AND type = 'ПАКЕТ'

ЗАКАЗ ПО строке;

♦ВЫБЕРИТЕ текст ИЗ USER_SOURCE

WHERE name = 'DEPTPACK'

AND type = 'ТЕЛО УПАКОВКИ'

ЗАКАЗ ПО строке;

(*)

♦ВЫБЕРИТЕ текст ИЗ USER_SOURCE

WHERE object_name = 'DEPTPACK'

И object_type = 'ТЕЛО УПАКОВКИ'

ЗАКАЗ ПО строке;

♦ВЫБЕРИТЕ текст ИЗ USER_SOURCE

WHERE name = 'DEPTPACK'

И тип = 'ТЕЛО'

ЗАКАЗ ПО строке;

3. Пакет OLDPACK находится в вашей схеме. Что произойдет, когда будет


выполнена следующая инструкция?

DROP PACKAGE oldpack;

♦ Тело будет сброшено, но спецификация будет сохранена.

Спецификация будет удалена, но тело будет сохранено.

♦ Как спецификация, так и тело будут сброшены. (*)

♦ Заявление не сработает, потому что вы должны уронить тело, прежде чем


сможете отказаться от спецификации.
4. Мы хотим удалить спецификацию (но не тело) пакета BIGPACK из базы
данных. Какая из следующих команд сделает это?

♦ ДРОП-ПАКЕТ большой пакет;

♦ СПЕЦИФИКАЦИЯ КАПЕЛЬНОГО ПАКЕТА bigpack;

♦ СПЕЦИФИКАЦИЯ ДРОП-ПАКЕТА;

♦ ЗАГОЛОВОК ЗАГОЛОВКА ПАКЕТА DROP;

♦Ничто из вышеперечисленного (*)

5. Изучите следующую спецификацию пакета:

СОЗДАТЬ ИЛИ ЗАМЕНИТЬ ПАКЕТ taxpack IS

КУРСОР ВЫДЕЛЯЕТСЯ * ОТ сотрудников;

ПРОЦЕДУРА taxproc;

КОНЕЦ mypack;

Корпус пакета TAXPACK также включает в себя функцию под названием


TAXFUNC. Какое из следующих утверждений НЕ соответствует
действительности?

♦ Процедуру можно вызвать:

НАЧАТЬ

taxpack.taxproc;

КОНЕЦ;

♦ Пакет не будет компилировать, потому что вы не можете объявить курсор в


спецификации. (*)

♦TAXPROC - это публичная процедура, а TAXFUNC - частная функция

♦TAXPROC может вызвать TAXFUNC, если TAXPROC закодирован до TAXFUNC


♦TAXPROC может открыть курсор

7. Пакет NEWPACK содержит несколько процедур и функций, включая


частную функцию PRIVFUNC. Откуда можно вызвать PRIVFUNC? (Выберите
два.)

♦ Из анонимного блока

♦ Из любой процедуры в NEWPACK (*)

♦ Из любой частной функции в другом пакете

♦ Из любой функции в NEWPACK (*)

♦ Из любой публичной процедуры в другом пакете

8. Какое из следующих утверждений о пакетах НЕ соответствует


действительности?

Все процедуры и функции должны быть объявлены в спецификации. (*)

♦Курсоры могут быть объявлены в спецификации.

Тело содержит подробный код подпрограмм.

♦ Переменные могут быть объявлены в теле.

♦ Спецификация должна быть создана перед телом.

9. Каждая подпрограмма, которая была объявлена в спецификации пакета,


также должна быть включена в тело пакета. Триу или ложь?

♦Правда (*)

♦ Ложь

10. Что не так со следующим синтаксисом для создания спецификации


пакета?

СОЗДАТЬ ИЛИ ЗАМЕНИТЬ ПАКЕТ mypack

g_constant1 ЧИСЛО(6) := 100;

ФУНКЦИЯ func1 (p_param1 IN VARCHAR2);

ФУНКЦИЯ func2;
КОНЕЦ mypack;

♦ Вы не можете объявить константы в спецификации.

♦ Пакет должен содержать по крайней мере одну процедуру.

♦ Должен быть указан тип данных RETURN функций. ( *)

♦ Первая строка должна быть:

СОЗДАТЬ ИЛИ ЗАМЕНИТЬ СПЕЦИФИКАЦИЮ ПАКЕТА mypack

♦Ничего не так, этот код не содержит ошибок.

11. Какое из следующих НЕ может быть частью пакета?

♦ Процедуры

♦ Явные курсоры

♦Триггеры (*)

♦ Функции

♦ Глобальные переменные

12. Почему лучше использовать DBMS_OUTPUT только в анонимных блоках, а


не внутри хранимых подпрограмм, таких как процедуры?

♦Потому что DBMS_OUTPUT не может использоваться внутри процедур

♦ Потому что анонимные блоки отображают сообщения во время


выполнения блокировки, в то время как процедуры ничего не отображают,
пока их выполнение не будет завершено.

♦Потому что DBMS_OUTPUT следует использовать только для тестирования и


отладки кода PL/SQL (*)

♦Потому что DBMS_OUTPUT может вызвать исключение NO_DATA_FOUND при


использовании внутри упакованной процедуры

13. Какое из следующих исключений может быть вызвано ТОЛЬКО при


использовании пакета UTL_FILE? (Выберите два)

♦ НЕДЕЙСТВИТЕЛЬНЫЙ_ПУТЬ (*)

♦NO_DATA_FOUND
♦VALUE_ОШИБКА

♦READ_ERROR (*)

♦E_MYEXCEP

14. Что будет отображаться при выполнении следующего кода?

НАЧАТЬ

DBMS_OUTPUT.PUT('Мне нравится');

DBMS_OUTPUT.PUT_LINE('быть');

DBMS_OUTPUT.PUT('у моря');

КОНЕЦ; Мне нравится быть

рядом с морем

♦ Мне нравится

быть

рядом с морем

♦ Мне нравится быть

♦ Мне нравится быть

(*)

♦ Мне нравится быть рядом с морем

15. DBMS_OUTPUT.PUT_LINE может быть вызван из частной упакованной


функции. Правда или ложь?

♦Правда (*)

♦ Ложь

16. Пакет CURSPACK объявляет глобальный курсор в спецификации пакета.


Пакет содержит три общедоступные процедуры: OPENPROC открывает
курсор; FETCHPROC извлекает 5 строк из активного набора курсора;
CLOSEPROC закрывает курсор.
Что произойдет, когда сеанс пользователя выполнит следующие команды в
указанном порядке?

curspack.openproc; — строка 1

curspack.fetchproc; — строка 2

curspack.fetchproc; — строка 3

curspack.openproc; — строка 4

curspack.fetchproc; — строка 5

curspack.closeproc; — строка 6

Первые 15 строк будут получены.

♦ Первые 10 строк будут получены, затем первые 5 строк будут получены


снова.

Первые 5 строк будут получены три раза.

♦ В строке 2 произойдет ошибка.

♦ В строке 4 произойдет ошибка. (*)

17. Курсор объявляется в спецификации пакета. Пользователь SIOBHAN


открывает курсор и извлекает первые три строки из активного набора
курсора, но не закрывает курсор.

Пользователь FRED теперь подключается к базе данных. FRED может


немедленно получить следующие три строки, не открывая курсор. Правда
или ложь?

♦ Истинный

♦Леская (*)

18. Какие из следующих инструкций SQL могут быть включены в блок PL/SQL
только с помощью Dynamic SQL? (Выберите два.)

♦ УДАЛИТЬ

♦ СОХРАНИТЬ ТОЧКУ

♦ ВОЗРАСТ (*)
♦ ВЫБЕРИТЕ ..... ДЛЯ ОБНОВЛЕНИЯ СЕЙЧАС

♦ ГРАНТ (*)

19. Мэри хочет, чтобы Генри мог запросить таблицу своих СОТРУДНИКОВ.
Мэри выполняет следующий код:

ОБЪЯВЛЯЙ

v_grant_stmt VARCHAR2(50);

НАЧАТЬ

v_grant_stmt := 'GRANT SELECT ON employees TO henry';

DBMS_SQL.EXECUTE(v_grant_stmt);

КОНЕЦ;

Мэри успешно предоставила привилегию Генри. Правда или ложь?

♦ Истинный

♦Леская (*)

20. Публичная упакованная процедура содержит следующую инструкцию


SQL:

ОБНОВЛЕНИЕ сотрудников УСТАНОВИТЬ зарплату = зарплату * 1.1;

Когда анализируется эта инструкция SQL?

При создании спецификации пакета

♦ При создании тела пакета (*)

Когда заголовок пакета загружен в память.

♦ Когда пакет загружается в память.

♦ Только при первом выполнении процедуры.

21. Самый простой способ включить инструкции DDL в блок PL/SQL -


использовать пакет DBMS_SQL. Правда или ложь?
♦ Истинный

♦Леская (*)

22. Пакет TAXPACK объявляет глобальную переменную G_TAXRATE


NUMBER(2,2). Значение налоговой ставки хранится в таблице TAXTAB в базе
данных. Вы хотите автоматически читать это значение в G_TAXRATE каждый
раз, когда сеанс пользователя совершает свой первый вызов TAXPACK. Как бы
вы это сделали?

♦ Объявите глобальную переменную следующим образом:

g_taxrate NUMBER(2,2) := ВЫБЕРИТЕ tax_rate FROM taxtab;

Создайте триггер базы данных, который включает в себя следующий код:

ВЫБЕРИТЕ tax_rate В taxpack.g_taxrate ОТ taxtab;

♦ Добавьте частную функцию в тело пакета TAXPACK и вызовите функцию из


сеанса пользователя.

♦ Добавьте блок инициализации пакета в тело пакета TAXPACK.

(*)

23. Нам никогда не нужно использовать высренную декларацию при


использовании публичной подпрограммы. Правда или ложь?

♦Правда (*)

♦ Ложь

24. Какие два из этих деклараций не могут быть в одной спецификации


пакета?

ПРОЦЕДУРА myproc (p1 NUMBER, p2 VARCHAR2);

ПРОЦЕДУРА myproc (p1 VARCHAR2, p2 NUMBER);

ПРОЦЕДУРА myproc (p1 NUMBER, p2 CHAR);

ПРОЦЕДУРА myproc (НОМЕР p1);

♦1 и 2
♦1 и 3 (*)

♦2 и 3

♦3 и 4

♦1 и 4

25. Пакет HRPACK содержит следующую публичную функцию:

ФУНКЦИЯ empfunc (p_deptno NUMBER) ВОЗВРАЩАЕМЫЙ НОМЕР

НАЧАТЬ

ОБНОВЛЕНИЕ сотрудников УСТАНОВИТЬ зарплату = зарплату * 1.1

ГДЕ department_id = p_deptno;

ВОЗВРАЩАЕТ SQL%ROWCOUNT;

Рекомендуется END;

Что произойдет при выполнении следующей инструкции SQL?

ВЫБЕРИТЕ имя_кадры, hrpack.empfunc(department_id)

ОТ отделов;

♦ SELECT не удался, потому что вы не можете вернуть SQL%ROWCOUNT из


упакованной функции.

♦ SELECT завершится неудачей, потому что вы не можете вызвать


упакованные функции из инструкции SQL.

♦ SELECT завершится неудачей, потому что вы не можете выполнить


инструкцию DML из запроса.

♦ SELECT будет успешным, потому что он ссылается на таблицу, отличную от


функции. (*)

26. Что не так со следующим кодом?


СОЗДАТЬ TRIGGER dept_trigg

ПЕРЕД ОБНОВЛЕНИЕМ_name отдела В отделах

НАЧАТЬ

DBMS_OUTPUT.PUT_LINE(:NEW.department_name);

КОНЕЦ;

♦ Вы не можете использовать :NEW в триггере BEFORE, только в триггере


AFTER.

♦ Вы не можете использовать :NEW или :OLD в триггере оператора. (*)

♦ Вы не можете использовать DBMS_OUTPUT.PUT_LINE внутри триггера.

Вторая строка должна быть:

ПЕРЕД ОБНОВЛЕНИЕМ departments.department_name

27. Триггер инструкции DML запускается только один раз для каждой
инициирования инструкции DML, в то время как триггер строки запускается
один раз для каждой строки, обработанной инициающей инструкцией.
Правда или ложь?

♦Правда (*)

♦ Ложь

28. Изучите следующий код:

СОЗДАТЬ ТРИГГЕР emp_trigg

Линия А

НАЧАТЬ

ВСТАВИТЬ В ЗНАЧЕНИЯ log_table (ПОЛЬЗОВАТЕЛЬ, SYSDATE);

КОНЕЦ;

Что из перечисленного НЕ может быть закодировано в строке А?

♦ ПЕРЕД ОБНОВЛЕНИЕМ О СОТРУДНИКАХ


♦ ПОСЛЕ ВСТАВКИ ИЛИ УДАЛЕНИЯ НА сотрудников

♦ ПОСЛЕ ВЫБОРА НА сотрудников (*)

♦ ПЕРЕД УДАЛЕНИЕ СОТРУДНИКОВ

♦ ПОСЛЕ ОБНОВЛЕНИЯ ФАМИЛИИ НА сотрудниках

29. Следующий код успешно создаст emp_trigg: True или False?

СОЗДАТЬ ИЛИ ЗАМЕНИТЬ TRIGGER emp_trigg

ПЕРЕД УДАЛЕНИЕМ заработной платы сотрудников

НАЧАТЬ

RAISE_APPLICATION_ERROR(-20202, "Удаление заработной платы не


допускается');

КОНЕЦ;

♦ Истинный

♦Леская (*)

30. С каким триггером можно использовать квалификаторы :OLD и :NEW?

♦ Триггеры DDL

♦ Триггеры событий базы данных

♦ Триггеры выписок

♦ Триггеры с низу (*)

♦ ПОСЛЕ триггеров

31. В отделе 90 работают 3 сотрудника и 5 сотрудников в отделе 50. Создан


следующий триггер:

СОЗДАТЬ ТРИГГЕР upd_emp_trigg


ПОСЛЕ ОБНОВЛЕНИЯ О сотрудниках

ДЛЯ КАЖДОЙ СТРОКИ

НАЧАТЬ

...

Теперь пользователь выполняет:

ОБНОВИТЬ сотрудников SET department_id = 50

ГДЕ department_id = 90;

Сколько раз сработает пожар?

♦Однажды

♦ Три раза (*)

♦Четыре раза

♦Пять раз

♦Восьми раз

32. Изучите следующий триггер. Это должно вызвать ошибку приложения,


если пользователь пытается обновить фамилию сотрудника. Он должен
разрешать обновление всех других столбцов таблицы EMPLOYEES. Что
должно быть закодировано в строке А?

СОЗДАТЬ ТРИГГЕР stop_ln_trigg

ПЕРЕД ОБНОВЛЕНИЕМ О сотрудниках

НАЧАТЬ

Линия А

RAISE_APPLICATION_ERROR(-20201,'Обновление фамилии не допускается');

ЗАКОНЧИТЬСЯ, ЕСЛИ;
КОНЕЦ;

ПРИ ОБНОВЛЕНИИ ФАМИЛИИ, ТО

♦ ЕСЛИ ОБНОВЛЕНИЕ («ПОСЛЕДНЕЕ»), ТО (*)

♦ ЕСЛИ ОБНОВЛЕНИЕ ("ПОСЛЕДНЕЕ ИМЯ"), ТО

ЕСЛИ ОБНОВЛЕНИЕ, ТО

33. Изучите следующий код. Чтобы создать триггер строки, какой код должен
быть включен в строку А?

СОЗДАТЬ TRIGGER dept_trigg

ПОСЛЕ ОБНОВЛЕНИЯ ИЛИ УДАЛЕНИЯ В отделах

Линия А

НАЧАТЬ...

ПОСЛЕ КАЖДОГО РЯДА

♦ ДЛЯ КАЖДОГО РЯДА

♦ ДЛЯ КАЖДОГО РЯДА (*)

♦ В КАЖДОМ РЯДУ

♦ В КАЖДОМ РЯДУ

34. Пользователь AYSEGUL успешно создает следующий триггер:

СОЗДАТЬ ТРИГГЕР loc_trigg

ПЕРЕД ОБНОВЛЕНИЕМ НА aysegul.locations

НАЧНИТЕ...

AYSEGUL теперь пытается удалить таблицу LOCATIONS. Что происходит?


Отображается сообщение об ошибке, потому что вы не можете удалить
таблицу, связанную с триггером.

Таблица отбрасывается, а триггер отключен.

Триггер сбрасывается, но таблица не сбрасывается.

♦ Как стол, так и спусковой крючок сброшены. (*)

♦Ни одно из вышеперечисленного.

35. Вам нужно отключить все триггеры, связанные с инструкциями DML в


таблице DEPARTMENTS. Какую из следующих команд следует использовать?

♦ ОТДЕЛЫ ALTER TABLE ОТКЛЮЧАЮТ ВСЕ ТРИГГЕРЫ; (*)

♦ СТАРЫЙ ТРИГГЕР ОТКЛЮЧЕН ВСЕ НА ОТДЕЛАХ;

♦ Отделы СТАРОГО СТОЛА ОТКЛЮЧАЮТ ТРИГГЕРЫ;

♦ ОТКЛЮЧИТЬ ВСЕ ТРИГГЕРЫ НА ОТДЕЛАХ;

♦ ОТДЕЛЫ СТАРОГО СТОЛА СБРОСАЮТ ВСЕ ТРИГГЕРЫ;

36. После выполнения следующей инструкции SQL все триггеры в таблице


DEPARTMENTS больше не будут запускаться, но останутся в базе данных.
Правда или ложь?

ОТДЕЛЫ ALTER TABLE ОТКЛЮЧАЮТ ВСЕ ТРИГГЕРЫ;

♦Правда (*)

♦ Ложь

37. Вы можете кодировать операторы COMMIT и ROLLBACK в теле триггера.


Правда или ложь?

♦ Истинный

♦Леская (*)

38. Бизнес-правило гласит, что зарплата сотрудника не может быть больше


99,999,99 или меньше 0. Лучший способ обеспечить соблюдение этого
правила - использовать:
♦ Тип данных NUMBER(7,2) для столбца SALARY

♦ Триггер базы данных

♦ Ограничение проверки (*)

♦ Триггер приложения

♦ Вид

39. Какой тип объекта базы данных вы бы создали для автоматической


записи аудита каждый раз, когда пользователь подключается к базе данных?

♦ Процедура

♦ Сложный вид

♦ Триггер (*)

♦ Функция

♦ Пакет

40. Какие из следующих рекомендаций следует соблюдать при создании


триггера базы данных? (Выберите два.)

♦ Там, где это возможно, используйте триггер для обеспечения ограничения


внешнего ключа.

Используйте триггеры для переопределения проверки привилегий и


просмотра личных таблиц других пользователей.

Не используйте триггер для замены или дублирования того, что Oracle Server
делает автоматически. (*)

Используйте триггеры, чтобы предотвратить ВЫБОР конфиденциальных


данных неавторизованными пользователями.

♦ Не создавайте триггер, который автоматически запускает другой триггер.


(*)

41. В схеме пользователя были созданы следующие объекты:

- функция FUNC1

- Пакет PACK1, который содержит общедоступную процедуру PACKPROC и


частную функцию PACKFUNC

- триггер TRIGG1.
Процедура и функции принимают один параметр IN типа NUMBER, а функции
возвращают BOOLEAN. Какие из следующих вызовов этих объектов (из
анонимного блока) являются правильными? (Выберите два.)

♦pack1.packproc(25); (*)

♦ ВЫБЕРИТЕ func1(100) ИЗ двойного;

♦trigg1;

♦ ЕСЛИ pack1.packfunc(40) ТОГДА...

♦ ЕСЛИ func1(75) ТОГДА ... (*)

42. Триггер может быть создан в базе данных или в приложении. Правда или
ложь?

♦Правда (*)

♦ Ложь

43. Что из перечисленного НЕ хранится в базе данных? (Выберите два.)

♦ Спецификация пакета PL/SQL

♦ Триггер базы данных

♦ Анонимный блок (*)

♦ Триггер приложения (*)

♦ Последовательность

44. Изучите этот код:

СОЗДАТЬ ТРИГГЕР en_trigg

Линия А

НАЧАТЬ...

Что из перечисленного НЕдействительно в строке А? (Выберите два.)

♦ ПОСЛЕ ВЫХОДА ИЗ СИСТЕМЫ (*)


♦ ПОСЛЕ ВХОДА В СХЕМУ

♦ ПЕРЕД ВЫХОДОМ НА СХЕМУ

♦ ПЕРЕД ОТКЛЮЧЕНИЕМ СХЕМЫ (*)

ПОСЛЕ SERVERERROR НА СХЕМЕ

45. Какова цель использования оператора CALL в триггере?

♦ Это позволяет триггеру INSTEAD OF быть триггером оператора.

♦ Это позволяет поместить код тела триггера в отдельную процедуру. (*)

♦ Это предотвращает каскадные триггеры.

♦ Это позволяет поместить код тела триггера в отдельную процедуру или


функцию.

♦ Это позволяет обрабатывать как события DML, так и события DDL с


помощью одного триггера.

46. Какие типы триггеров могут вызвать проблему с мутирующим столом?


(Выберите два.)

♦ ПЕРЕД ОБНОВЛЕНИЕМ триггеров строк (*)

♦ Триггеры DDL

♦ ПОСЛЕ УДАЛЕНИЯ триггеров строки (*)

♦ Триггеры событий базы данных

♦ ВМЕСТО триггеров

47. Какое из следующих утверждений может привести к срабатыванию


триггера DDL?

♦ Сотрудники DROP TABLE;

♦ ДОБАВЬТЕ отделы СТАРОГО СТОЛА (НОМЕР бюджета (8,2));

♦ СОЗДАТЬ СТОЛ newemp КАК ВЫБРАТЬ * ОТ сотрудников;

♦ Расположение СТОЛОВ УТОЧНОГО СТОЛА;

♦ Все вышеперечисленное (*)

48. Изучите этот код:


СОЗДАТЬ ТРИГГЕР new_trigg

ПОСЛЕ СОЗДАНИЯ НА reserved_word

НАЧАТЬ...

Что из следующего можно использовать вместо reserved_word? (Выберите


два.)

♦ СТАТЕБЛИЦА

♦ СХЕМА (*)

♦ ПОЛЬЗОВАТЕЛЬ

♦ БАЗА ДАННЫХ (*)

♦ Сотрудники TABLE

49. Вы хотите предотвратить изменение или отбрасывание любых объектов в


вашей схеме. Вы решили создать следующий триггер:

СОЗДАТЬ ТРИГГЕР stop_ad_trigg

Линия А

НАЧАТЬ

RAISE_APPLICATION_ERROR(-20203,'Недействительная операция');

КОНЕЦ;

Что вы должны кодировать в строке А?

♦ ПОСЛЕ ИЗМЕНЕНИЯ ИЛИ ОТМЕНЫ НА СХЕМУ

♦ ВМЕСТО ИЗМЕНЕНИЯ ИЛИ ОТМЕНЫ НА СХЕМУ

♦ ПЕРЕД ИЗМЕНЕНИЕМ ИЛИ ОТМЕНОЙ СХЕМЫ (*)

♦ ДО ВОЗРАСТА, ОТОЙДИТЕ НА СХЕМУ


♦ ПОСЛЕ ВОЗРАСТА, ОТОЙДИТЕ НА СХЕМУ

50. Администратор базы данных хочет записывать запись журнала каждый


раз, когда в любом сеансе пользователя возникает ошибка Oracle Server. DBA
создает следующий триггер:

СОЗДАТЬ TRIGGER log_errs_trigg

Линия А

НАЧАТЬ

ВСТАВИТЬ В ЗНАЧЕНИЯ errlog_table (...);

КОНЕЦ;

Какой код должен быть DBA в строке А?

ПОСЛЕ ОШИБКИ В БАЗЕ ДАННЫХ

ПОСЛЕ ОШИБКИ СЕРВЕРА В БАЗЕ ДАННЫХ

ПОСЛЕ SERVERERROR НА СХЕМЕ

♦ПОСЛЕ SERVERERROR В БАЗЕ ДАННЫХ (*)


♦ ПОСЛЕ ОШИБКИ ORACLE НА СХЕМЕ

1. Какая из следующих деклараций недействительна?


v_count PLS_INTEGER:=0;
College_name VARCHAR2(20):='Гарвард';
v_pages ПОСТОЯННОЕ ЧИСЛО; (*)
v_start_date ДАТА := sysdate+1;

2. Что из перечисленного НЕ следует использовать в качестве имени


переменной?
Имя таблицы.
Имя столбца таблицы. (*)
Имя базы данных.

3.
1. Null
2. False
3. True
4. 0
Что из вышеперечисленного можно присвоить булевой переменной?

2и3
2, 3 и 4
1, 2 и 3 (*)
1, 2, 3 и 4

4. Выполняется следующий анонимный блок кода:


НАЧАТЬ
ВСТАВИТЬ В страны (идентификатор, имя)
ЗНАЧЕНИЯ ('XA', ' Ксанаду');
ВСТАВЬТЕ
В ЗНАЧЕНИЯ стран (идентификатор, название) ("NV", "Neverland");
СОВЕРШИТЬ;
СОВЕРШИТЬ;
ОТКАТ;
КОНЕЦ;
Что происходит, когда блок кода заканчивается?

У вас нет ничего нового; последний ROLLBACK отменил INSERT.


У вас есть строки, добавленные дважды; есть четыре новых строки.
Вы добавили две новые строки. (*)
Вы получаете ошибку; вы не можете COMMIT дважды подряд.

5. Что из следующего лучше всего описывает транзакцию базы


данных?
Все операторы DML в одном блоке PL/SQL
Связанный набор операторов SQL DML, которые должны выполняться
либо полностью, либо не выполняться вообще (*)
Один оператор SQL, обновляющий несколько строк таблицы
Оператор SELECT, основанный на соединении двух или более таблиц
базы данных

. 6. Какие из следующих идентификаторов являются допустимыми?


(Выберите два.) (Выберите все правильные ответы)
Полное имя student_street_address (*
)
v_code (*)
#hourscomplete_
%

7. Какие из следующих идентификаторов являются допустимыми?


(Выберите два.) (Выберите все правильные ответы)
вчера (*)
вчерашняя дата
number_of_students_in_the_class
v$testresult (*)
#students

8. Какие из перечисленных ниже лексических единиц PL/SQL?


(Выберите два.) (Выберите все правильные ответы)
Идентификаторы (*)
Столбцы таблицы
Зарезервированные слова (*)
Анонимные блоки
SQL Workshop

9. Что будет отображаться при выполнении следующего кода?


ОБЪЯВИТЬ
VARA NUMBER := 12;
BEGIN
DECLARE
varB NUMBER := 8;
НАЧАЛО varA
:= varA + varB;
КОНЕЦ;
DBMS_OUTPUT.PUT_LINE(varB);
КОНЕЦ;

8
12
Ничего, блок завершится с ошибкой (*)
20
VarB

10. В следующем коде строка A вызывает исключение. Какое значение


будет отображаться при выполнении кода?
ОБЪЯВИТЬ
external_var VARCHAR2(50) := 'Мой';
НАЧАЛО внешняя_переменная
:= внешняя_переменная || ' название';
ОБЪЯВИТЬ
inner_var ЧИСЛО;
НАЧАЛО inner_var
:= 'Мехмет'; --Линия А
внешняяпеременная := внешняяпеременная || ' является';
КОНЕЦ;
внешняяпеременная := внешняяпеременная || «Зейнеп»;
ИСКЛЮЧЕНИЕ ,
КОГДА ДРУГИЕ, ТОГДА
DBMS_OUTPUT.PUT_LINE(outer_var);
КОНЕЦ;

Мой
Мое имя (*)
Меня зовут
Меня зовут Зейнеп

11. Когда используются вложенные блоки, какие блоки могут или


должны быть помечены?
Внутренний блок должен быть помечен, внешний блок может быть
помечен.
Оба блока должны быть помечены .
Вложенные блоки не могут быть помечены
. Внешний блок должен быть помечен, если на него нужно ссылаться
во внутреннем блоке. (*)

12. Что будет отображаться при выполнении следующего кода?


DECLARE
x VARCHAR2(6) := 'Chang';
НАЧАТЬ
ЗАЯВИТЬ
x VARCHAR2(12) := 'Сьюзен';
НАЧАЛО
х := х || Икс;
КОНЕЦ;
DBMS_OUTPUT.PUT_LINE(x);
КОНЕЦ;

Susan
Chang (*)
ChangChang
SusanChang
Код завершится с ошибкой

13. Изучите следующий код. В строке A мы хотим присвоить значение


22 переменной внешнего блока v_myvar. Какой код мы должны
написать в строке A?
<<outer_block>>
DECLARE
v_myvar NUMBER;
BEGIN
<<inner_block>>
DECLARE
v_myvar NUMBER := 15;
НАЧАЛО --Строка
А
КОНЕЦ;
КОНЕЦ;

external_block.v_myvar := 22; (*)


v_myvar := 22;
<<внешний_блок>>.v_myvar := 22;
v_myvar(внешний_блок):= 22;
Мы не можем ссылаться на переменную внешнего блока, потому что
обе переменные имеют одинаковое имя

. 14. Какой из этих операторов SQL может быть непосредственно


включен в исполняемый блок PL/SQL?
УДАЛИТЬ ИЗ сотрудников, ГДЕ ИД_отдела = 60; (*)
ВЫБЕРИТЕ зарплату ОТ сотрудников, ГДЕ ИД_отдела = 60;
CREATE TABLE new_emps (last_name VARCHAR2(10), first_name
VARCHAR2(10));
DROP TABLE местоположения;

15. Что из нижеперечисленного НЕ является хорошим руководством


для извлечения данных в PL/SQL?
Объявите принимающие переменные с помощью %TYPE
Предложение WHERE является необязательным почти во всех случаях.
(*)
Укажите такое же количество переменных в предложении INTO, как и
столбцов базы данных в предложении SELECT.
Оператор SELECT должен выбрать ровно одну строку.

16. Переменная объявлена как:


DECLARE
v_salary employee.salary%TYPE;
BEGIN
Что из следующего является правильным использованием предложения
INTO?
ВЫБЕРИТЕ зарплатуВзаработную платуОТ сотрудников, ГДЕ
сотрудникидентификатор = 100; (*)
ВЫБЕРИТЕ v_заработную платуОТ сотрудниковГДЕ
сотрудник_идентификатор = 100;
ВЫБЕРИТЕ зарплату ОТ сотрудников В v_salary;
ВЫБЕРИТЕ зарплату ОТ сотрудников, ГДЕ employee_id = 100INTO
v_salary;

17. Какие строки будут удалены из таблицы EMPLOYEES при


выполнении следующего кода?
ОБЪЯВИТЬ
зарплату сотрудников.salary%TYPE := 12000;
НАЧНИТЕ
УДАЛИТЬ ИЗ сотрудников, ГДЕ зарплата > зарплата;
КОНЕЦ;

Все строки, в которых значение столбца SALARY больше 12000.


Все строки в таблице.
Нет рядов. (*)
Все строки, в которых значение столбца SALARY равно 12000.

18. Какой из этих операторов SQL может быть непосредственно


включен в исполняемый блок PL/SQL?
ВЫБЕРИТЕ фамилию ОТ сотрудников, ГДЕ employee_id = 100;
ОПИШИТЕ сотрудников;
ОБНОВЛЕНИЕ employeeSET last_name='Smith';(*)
УДАЛИТЬ ТАБЛИЦУ сотрудников;

19. Оцените следующее утверждение. Определите, законно это или нет.


ОБЪЯВИТЬ
максимальную зарплату ЧИСЛО (7) = 5000;

Верный.
Не верно. (*)

20. Операторы присваивания могут занимать несколько строк в


PL/SQL. Правда или ложь?
Верно (*)
Ложно

21. Если переменная определена с помощью ключевого слова


CONSTANT, значение переменной не может измениться. Правда или
ложь?
Верно (*)
Ложно

22. Переменные можно использовать в блоке PL/SQL следующим


образом. (Выберите два.) (Выберите все правильные ответы)
Для хранения значений данных. (*)
Переименовывать таблицы и столбцы.
Для обращения к одному значению данных несколько раз. (*)
Комментировать код.

23. Когда переменная определяется с использованием ключевых слов


NOT NULL, переменная должна содержать значение. Правда или
ложь?
Верно (*)
Неверно

24. PL/SQL — это собственный процедурный язык программирования


Oracle 4GL. Правда или ложь?
Верно
Ложно (*)

25. Программу, в которой указан список операций, которые


необходимо выполнить последовательно для достижения желаемого
результата, можно назвать:

декларативной
недекларативной
процедурной (*)
низкого уровня

26. Какое из следующих утверждений о PL/SQL и SQL верно?


PL/SQL и SQL совместимы с ANSI.
PL/SQL и SQL можно использовать со многими типами баз данных,
включая Oracle.
PL/SQL и SQL являются проприетарными языками программирования
Oracle.
PL/SQL позволяет комбинировать базовую логику программы и поток
управления
с операторами SQL. (*)

27. Какие операторы являются необязательными в блоке PL/SQL?


(Выберите два.) (Выберите все правильные ответы)
DECLARE (*)
BEGIN
EXCEPTION (*)
END;

28. Какова цель использования DBMS_OUTPUT.PUT_LINE в блоке


aPL/SQL?
Для выполнения условных тестов
Для многократного выполнения набора операторов
Для отображения результатов для проверки правильности работы
нашего кода (*)
Для сохранения новых строк в базе данных

29. Какой из следующих инструментов НЕ может быть использован


для разработки и тестирования PL /код SQL?
Oracle Jdeveloper
Oracle Application Express
Oracle JSQL (*)
Oracle iSQL*Plus

30. Ниже приведены части блока PL/SQL:


1. КОНЕЦ;
2. ИСКЛЮЧЕНИЕ
3. ОБЪЯВЛЕНИЕ
4. НАЧАЛО
Расположите части по порядку.

2,1,4,3
3,4,2,1 (*)
3,2,4,1
4,3,2,1

31. Каждый анонимный блок PL/SQL должен начинаться с ключевого


слова DECLARE.
Правда или ложь?
Верно
Неверно (*)

32. Какие строки кода будут корректно отображать сообщение «Кошка


села на коврик»? (Выберите два.)
(Выберите все правильные ответы)
DBMS_OUTPUT.PUT_LINE('Кошка сидела на коврике'); (*)
DBMS_OUTPUT.PUT_LINE(Кошка села на коврик);
DBMS_OUTPUT.PUT_LINE('Кот' || 'сел на коврик');
DBMS_OUTPUT.PUT_LINE('Кот сидел ' || 'на коврике'); (*)

33. Ошибки обрабатываются в части Exception блока PL/SQL. Правда


или ложь?
Верно (*)
Неверно

34. Какой компонент Oracle Application Express используется для ввода


и выполнения операторов SQL и блоков PL/SQL?
Конструктор приложений
SQL Workshop (*)
Утилиты
Браузер объектов
Правильно Правильно

35. __ предназначены для хранения больших объемов данных.


Переменные
Скалярные типы данных
LOB (*)

36. Каков тип данных переменной V_DEPT_TABLE в следующем


объявлении?
DECLARE
TYPE dept_table_type ЯВЛЯЕТСЯ ТАБЛИЦЕЙ отделов%ROWTYPE
INDEX BYPLS_INTEGER; v_dept_table типтаблицыотдела; ...

Scalar
Composite (*)
LOB

37. Какие из этих типов данных относятся к PL/SQL? (Выберите три


варианта.) (Выберите все правильные ответы)
Скаляр (*)
Идентификатор
Разделитель
Составной (*) Большой объект
(*)

38. Что выводится при выполнении следующей программы?


установить serveroutput на
DECLARE
a VARCHAR2 (10): = '333';
б VARCHAR2(10) := '444';
в PLS_INTEGER;
г VARCHAR2(10);
НАЧАЛО
c := TO_NUMBER(a) + TO_NUMBER(b);
д := а || б;
DBMS_OUTPUT.PUT_LINE(c);
DBMS_OUTPUT.PUT_LINE(д);
КОНЕЦ;

Ничего. Код приведет к ошибке.


c=777 и d=333444 (=777 и d=333444 ()
c=777 и d=777
c=333444 и d=777

39. Неявное преобразование типа данных в точке A может работать


некорректно. Почему?
DECLARE
v_mydate DATE;
BEGIN
V_MYDATE := '29-Feb-04'; --Point A
END;

В феврале всего 28 дней


Oracle не может неявно преобразовать строку символов в дату, даже
если строка содержит действительное значение даты
. Если язык базы данных не английский, 'Feb' не имеет значения. (*)
V_MYDATE было введено в верхнем регистре

40. Если сегодняшняя дата 14 июня 2007 г., какой оператор правильно
преобразует сегодняшнюю дату в значение: 14 июня 2007 г.?
TO_CHAR(sysdate)
TO_DATE(sysdate)
TO_DATE(sysdate,'Месяц ДД, ГГГГ')
TO_CHAR(sysdate, 'Месяц ДД, ГГГГ') (*)

Неверно Неверно. Обратитесь к разделу 2.


Предыдущая страница 8 из 10 Далее Резюме

41. PL/SQL может преобразовывать значение VARCHAR2, содержащее


буквенные символы, в числовое значение. Правда или ложь?
Верно
Ложно (*)

42. Что не так с этим оператором присваивания?


myvar :=
'Быть или не быть';
'Вот в чем вопрос';

Оператор присваивания должен состоять из одной строки кода Все


в порядке, оператор в порядке
Оператор присваивания должен иметь одну точку с запятой в конце (*)
"myvar" не является допустимым именем для переменной
Символьные литералы не должны заключаться в кавычки

43. Изучите следующий код. Каково окончательное значение


V_MYVAR?
ОБЪЯВИТЬ
v_myvar NUMBER;
НАЧАЛО v_myvar
:= 1 + 2 * 3;
v_myvar := v_myvar * 2;
КОНЕЦ;

81
49
14 (*)
18

44. Какие из следующих операторов присваивания являются


допустимыми?
(Выберите два.) (Выберите все правильные ответы)
v_string = 'Привет';
v_string := Привет;
v_число:= 17 + 34; (*)
v_string := 'Привет'; (*)
v_date := 28-DEC-06;

45. Изучите следующий код. Каково окончательное значение


V_MYBOOL?
ОБЪЯВИТЬ
v_mynumber ЧИСЛО;
v_mybool BOOLEAN ;
НАЧАЛО v_mynumber
:= 6;
v_mybool := (v_mynumber МЕЖДУ 10 И 20);
v_mybool := НЕ (v_mybool);
КОНЕЦ;

Верно (*)
Ложно

46. Изучите следующий код:


1 DECLARE
2 x NUMBER;
3 НАЧАЛО
4 x:= '300';
5 КОНЕЦ;
После строки 4, каково значение x?

«300»
300 (*)
NULL

47. TO_NUMBER, TO_CHAR и TO_DATE — все это примеры:

Неявных функций
преобразования Явных функций преобразования (*)
Символьных функций
Операторов

48. Предположим, что в отделе 10 5 сотрудников. Что происходит,


когда выполняется следующая инструкция?
ОБНОВЛЕНИЕ оклад сотрудников=зарплата*1.1;

Все сотрудники получают 10-процентную надбавку к заработной


плате. (*)
Никакие строки не изменены, поскольку вы не указали
«WHEREdepartment_id=10»
. Возникает исключение TOO_MANY_ROWS.
Отображается сообщение об ошибке, потому что вы должны
использовать предложение INTO, чтобы сохранить новую зарплату.

49. Вы объявляете неявный курсор в разделе DECLARE блока


PL/SQL. Правда или ложь?
Верно
Ложно (*)

50. Блок PL/SQL включает следующую инструкцию:


SELECT last_name INTO v_last_name
FROM employeeWHERE employee_id=100;
Каково значение SQL%ISOPEN сразу после выполнения оператора
SELECT?
Верно
Ложно (*)
Нулевая

СОЗДАЙТЕ ТРИГГЕР emp_triggПОСЛЕ ОБНОВЛЕНИЯ ЗПАРЛА


ДЛЯ СОТРУДНИКОВ ДЛЯ КАЖДОЙ СТРОКИ
DECLARE
v_count NUMBER;
НАЧАЛО --Строка
А
КОНЕЦ;
Какое из следующих утверждений НЕ разрешено в строке A?

SELECT count(*) INTO v_count FROMdepartments;


ОБНОВЛЕНИЕ сотрудников SET job_id = 'IT_PROG'
WHEREemployee_id = :OLD.employee_id;
SELECT count() INTO v_count FROM сотрудников;()
DBMS_OUTPUT.PUT_LINE('Зарплата была обновлена');
Никто. Все вышеперечисленное разрешено.

2. Какое из следующих утверждений может привести к срабатыванию


триггера DDL?
DROP TABLE сотрудников;
ALTER TABLE отделы ADD (budgetNUMBER(8,2));
CREATE TABLE newemp AS SELECT * FROMemployees;
местоположения TRUNCATE TABLE;
Все вышеперечисленное (*)

3. Администратор базы данных хочет записывать в журнал запись


каждый раз, когда в сеансе любого пользователя возникает ошибка
Oracle Server. Администратор баз данных создает следующий триггер:

CREATE TRIGGER log_errs_trigg -- Строка A


BEGIN --
Строка A
BEGIN
INSERT INTO errlog_table VALUES (...);
КОНЕЦ;
Что должен код администратора баз данных в строке A?

ПОСЛЕ ОШИБКИ В БАЗЕ


ДАННЫХ ПОСЛЕ ОШИБКИ СЕРВЕРА В БАЗЕ ДАННЫХ ПОСЛЕ
ОШИБКИ СЕРВЕРА В СХЕМЕ ПОСЛЕ ОШИБКИ СЕРВЕРА В БАЗЕ
ДАННЫХ (*) ПОСЛЕ ОШИБКИ
ОРАКУЛА В СХЕМЕ

4. Вы хотите предотвратить изменение или удаление каких-либо


объектов в вашей схеме. Вы решили создать следующий триггер:
CREATE TRIGGER stop_ad_trigg--Line A
BEGIN
RAISE_APPLICATION_ERROR(-20203,'Неверная операция');
КОНЕЦ;
Что вы должны кодировать в строке A?

AFTER ALTER OR DROP ON SCHEMA


ВМЕСТО ALTER OR DROP ON SCHEMA
ПЕРЕД ИЗМЕНЕНИЕМ ИЛИ DROP ON SCHEMA (*)
ПЕРЕД ИЗМЕНЕНИЕМ, DROP ON SCHEMA
AFTER ALTER, DROP ON SCHEMA

5. Какие типы триггеров могут вызвать проблему изменяющейся


таблицы? (Выберите два варианта.) (Выберите все правильные ответы)
Триггеры строки BEFORE UPDATE (*)
Триггеры DDL
AFTER DELETE триггеры строки (*)
Триггеры события базы данных
INSTEAD OF триггеры
Триггеры события базы данных
ВМЕСТО триггеров

6. Изучите этот код:


CREATE TRIGGER new_triggAFTER CREATE ON
зарезервированное_слово
BEGIN ...
Что из следующего можно использовать вместо
зарезервированного_слова? (Выберите два.) (Выберите все правильные
ответы) СХЕМА
ТАБЛИЦЫ
(*) БАЗА ДАННЫХ
ПОЛЬЗОВАТЕЛЯ
(*)
ТАБЛИЦА сотрудников

7. Изучите этот код:


СОЗДАЙТЕ ТРИГГЕР de_trigg--Строка A
НАЧАЛО ...
Какие из следующих НЕдействительны для строки A ? (Выберите два
варианта.) (Выберите все правильные ответы)
ПОСЛЕ ВЫХОДА ПО СХЕМЕ (*)
ПОСЛЕ
ВХОДА ПО СХЕМЕ ПЕРЕД ВЫХОДОМ ПО СХЕМЕ ПЕРЕД
ОТКЛЮЧЕНИЕМ ПО СХЕМЕ
(*)
ПОСЛЕ ОШИБКИ СЕРВЕРА ПО СХЕМЕ

8. Вам необходимо отключить все триггеры, связанные с операторами


DML в таблице DEPARTMENTS. Какую из следующих команд следует
использовать?

ИЗМЕНИТЬ ТАБЛИЦУ отделов ОТКЛЮЧИТЬ ВСЕ ТРИГГЕРЫ; (*)


ИЗМЕНИТЬ ТРИГГЕР ОТКЛЮЧИТЬ ВСЕ НА отделы;
ИЗМЕНИТЬ ТАБЛИЦУ отделов ОТКЛЮЧИТЬ ТРИГГЕРЫ;
ОТКЛЮЧИТЬ ВСЕ ТРИГГЕРЫ ПО отделам;
ALTER TABLE отделы УДАЛИТЬ ВСЕ ТРИГГЕРЫ;

9. После выполнения следующей инструкции SQL все триггеры в


таблице DEPARTMENTS больше не будут срабатывать, но останутся в
базе данных. Правда или ложь?
ИЗМЕНИТЬ ТАБЛИЦУ отделов ОТКЛЮЧИТЬ ВСЕ ТРИГГЕРЫ;
Верно (*)
Ложно

10. Пользователь AYSEGUL успешно создает следующий триггер:


CREATE TRIGGER loc_triggBEFORE UPDATE ON
aysegul.locationsBEGIN ....
Теперь AYSEGUL пытается удалить таблицу LOCATIONS. Что
происходит?

Отображается сообщение об ошибке, поскольку вы не можете удалить


таблицу, связанную с триггером.
Таблица удалена, а триггер отключен.
Триггер отбрасывается, но таблица не отбрасывается.
И таблица, и триггер удаляются. (*)
Ничего из вышеперечисленного.

11. Оператор SQL может пройти несколько этапов. Что из


перечисленного НЕ является одной из этих стадий?

BIND
FETCH
PARSE
RETURN(*)
EXECUTE

12. Изучите следующий код:


CREATE OR REPLACE PROCEDURE myproc ISCURSOR c_curs IS
SELECT view_name FROM user_views;
НАЧАТЬ ДЛЯ v_curs_rec
IN c_curs LOOP
EXECUTE IMMEDIATE 'DROP VIEW' || v_curs_rec.view_name;
КОНЕЦ ПЕТЛИ;
КОНЕЦ;
Что произойдет при вызове этой процедуры?
Все представления в схеме пользователя будут удалены. (*)
Процедура не будет успешно скомпилирована из-за неправильного
синтаксиса EXECUTE IMMEDIATE.
Процедура вызовет исключение, поскольку динамический SQL может
удалять таблицы, но не может удалять представления.
Процедура вызовет исключение, поскольку одно из представлений
является сложным представлением.
13. Какие из следующих операторов SQL можно включить в блок
PL/SQL только с помощью динамического SQL? (Выберите два.)
(Выберите все правильные ответы)

УДАЛИТЬ
ТОЧКУ СОХРАНЕНИЯ
ИЗМЕНИТЬ (*)
SELECT ..... FOR UPDATE NOWAIT
GRANT (*)
SAVEPOINT
ALTER (*)
SELECT ..... FOR UPDATE NOWAIT
GRANT (*)

14. МЭРИ хочет, чтобы HENRY мог запрашивать ее EMPLOYEEStable.


Мэри выполняет следующий код:
DECLARE
v_grant_stmt VARCHAR2(50);
НАЧАЛО v_grant_stmt
:= 'ДАТЬ ВЫБОР СОТРУДНИКОВ ДЛЯ Генри';
DBMS_SQL.EXECUTE(v_grant_stmt);
КОНЕЦ;

Мэри успешно предоставила привилегию Генри. Правда или ложь?

Верно Неверно
(*)

15. Пакет MULTIPACK объявляет следующую глобальную


переменную:
g_myvar NUMBER;
Пользователь DICK выполняет следующее:
multipack.g_myvar := 45;
Пользователь HAZEL теперь подключается к базе данных. Оба
пользователя немедленно выполняют:
BEGIN
DBMS_OUTPUT.PUT_LINE(multipack.g_myvar);
КОНЕЦ;
Какие ценности увидят Дик и Хейзел?

Dick: 45, Hazel: 45


Dick: 45, Hazel: 0
Dick: 45, Hazel: null (*)
Dick: 0, Hazel: 0
Оба запроса завершатся ошибкой, поскольку синтаксис
DBMS_OUTPUT.PUT_LINE неверен

16. Пакет CURSPACK объявляет глобальный курсор в спецификации


пакета. Пакет содержит три общедоступные процедуры: OPENPROC
открывает курсор; FETCHPROCвыбирает 5 строк из активного набора
курсора; CLOSEPROC закрывает курсор.
Что произойдет, когда пользовательский сеанс выполнит следующие
команды в указанном порядке?
курспак.openproc; --линия 1
курспак.fetchproc; --строка 2
curspack.fetchproc; --строка 3
curspack.openproc; --строка 4
curspack.fetchproc; --строка 5
curspack.closeproc; --line 6 Будут выбраны

первые 15 строк.
Будут выбраны первые 10 строк, затем снова будут выбраны первые 5
строк.
Первые 5 строк будут выбраны три раза.
В строке 2
произойдет ошибка. В строке 4 произойдет ошибка. (*)

17. Какое из следующих утверждений о блоке инициализации пакета


верно?
Он не может содержать никаких операторов SQL.
Это анонимный блок в конце тела пакета. (*)
Это процедура в пакете, которую необходимо вызвать, прежде чем
можно будет использовать остальную часть пакета.
Это анонимный блок в спецификации пакета.
Он выполняется автоматически каждый раз, когда делается ссылка на
любую глобальную переменную в пакете.

18. Общедоступная функция в пакете вызывается из инструкции SQL.


Код функции может включать оператор COMMIT. Правда или ложь?
Верно Неверно
(*)
19. Пакет TAXPACK объявляет глобальную переменную
G_TAXRATENUMBER(2,2). Значение налоговой ставки хранится в
таблице TAXTAB в базе данных. Вы хотите автоматически считывать
это значение в G_TAXRATE каждый раз, когда пользовательский сеанс
делает свой первый вызов TAXPACK. Как бы вы это сделали?
Объявите глобальную переменную как:
g_taxrate NUMBER(2,2) := SELECT tax_rate FROM taxtab;

Создайте триггер базы данных, включающий следующий код:


ВЫБЕРИТЕ tax_rate INTO taxpack.g_taxrate FROM taxtab;

Добавьте приватную функцию в тело пакета TAXPACK и вызовите эту


функцию из сеанса пользователя.

Добавьте блок инициализации пакета в тело пакета TAXPACK. (*)

20. Какие два из этих объявлений не могут быть в одной спецификации


пакета?
ПРОЦЕДУРА myproc (p1 NUMBER, p2 VARCHAR2);
ПРОЦЕДУРА myproc (p1 VARCHAR2, p2 NUMBER);
ПРОЦЕДУРА myproc (ЧИСЛО p1, СИМВОЛ p2);
ПРОЦЕДУРА myproc (ЧИСЛО p1);

1и2
1 и 3 (*)
2и3
3и4
1и4

21. Что из следующего НЕ хранится в базе данных? (Выберите два


варианта.) (Выберите все правильные ответы)
Спецификация пакета PL/SQL
Триггер базы данных
Анонимный блок (*)
Триггер приложения (*)
Последовательность

22. Вы можете использовать триггер, чтобы предотвратить удаление


строк из таблицы EMPLOYEES по понедельникам. Правда или ложь?
Верно (*)
Неверно
23. Какой тип объекта базы данных вы бы создали для автоматической
записи контрольной записи каждый раз, когда пользователь
подключается к
базе данных?
Процедура
Комплексное представление
Триггер (*)
Функция
Пакет

24. Бизнес-правило гласит, что зарплата сотрудника не может быть


больше 99 999,99 или меньше 0. Лучший способ обеспечить
выполнение этого правила — использовать:

Тип данных NUMBER(7, 2) для триггера базы данных SALARYcolumn


A
Контрольное ограничение (*)
Триггер приложения
Представление

25. В пользовательской схеме созданы следующие объекты:


- функция FUNC1
- пакет PACK1, который содержит общедоступную процедуру
PACKPROC и закрытую функцию PACKFUNC
- триггер TRIGG1.
Процедура и функции принимают один параметр IN типа NUMBER, а
функции возвращают логические значения. Какие из следующих
обращений к этим объектам (из анонимного блока) верны? (Выберите
два.) (Выберите все правильные ответы)

pack1.packproc(25); (*)
SELECT func1(100) FROM dual;
триггер1;
IF pack1.packfunc(40) THEN ...
IF func1(75) THEN ... (*)

26. Вы можете кодировать операторы COMMIT и ROLLBACK в теле


триггера. Правда или ложь?
Верно
Неверно (*)
27. Триггер можно создать в базе данных или в приложении. Правда
или ложь?
Верно (*)
Неверно

28. Каталог Oracle с именем FILESDIR был создан путем выполнения:


CREATE OR REPLACE DIRECTORY filesdir AS 'C:\NEWFILES';
Что из следующего создаст новый текстовый файл с именем C:\
NEWFILES\EMP_REPORT.TXT?

UTL_FILE.CREATE('FILESDIR','EMP_REPORT.TXT');
UTL_FILE.FOPEN('C:\NEWFILES\EMP_REPORT.TXT','w');
UTL_FILE.FOPEN('FILESDIR','EMP_REPORT.TXT','w'); (*)
UTL_FILE.OPEN('FILESDIR','EMP_REPORT.TXT','c');

29. Почему лучше использовать DBMS_OUTPUT только в анонимных


блоках, а не внутри хранимых подпрограмм, таких как процедуры?

Поскольку DBMS_OUTPUT нельзя использовать внутри процедур.

Поскольку анонимные блоки отображают сообщения во время


выполнения блока, а процедуры не отображают ничего, пока их
выполнение не завершится

. Поскольку DBMS_OUTPUT следует использовать только для


тестирования и отладки кода PL/SQL (*)

Поскольку DBMS_OUTPUT может вызвать исключение


NO_DATA_FOUND при использовании внутри упакованной
процедуры

30. Что из следующего лучше всего описывает назначение пакета


UTL_FILE?

Он используется для загрузки двоичных файлов, таких как фотографии


сотрудников, в базу данных. фотографии сотрудников в базу данных.

Он используется для чтения и записи текстовых файлов.


хранится вне базы данных. (*)

Используется, чтобы узнать, сколько свободного места осталось на


диске операционной системы.
Он используется для запроса столбцов CHAR и VARCHAR2 в
таблицах.

31. Что будет отображаться при выполнении следующего кода?

BEGIN
DBMS_OUTPUT.PUT('Мне нравится');
DBMS_OUTPUT.PUT_LINE («будет»);
DBMS_OUTPUT.PUT('рядом с морем');
КОНЕЦ;

Мне нравится быть


на берегу моря

Мне нравится
быть
на берегу моря

Мне нравится быть

Мне нравится быть(*)

Мне нравится быть на берегу моря

32. Каждая подпрограмма, объявленная в


спецификации пакета, также должна быть включенным в тело пакета.
Триу или Ложь?
Верно (*)
Ложно

33. Была создана следующая спецификация пакета:


CREATE OR REPLACE PACKAGE mypack ISFUNCTION
myfunc(p_funcparam DATE) RETURN BOOLEAN;
ПРОЦЕДУРА myproc(p_procparam IN NUMBER);
ЗАВЕРШИТЬ мой пакет;
Что из следующего будет правильно вызывать подпрограммы пакета?
(Выберите два.) (Выберите все правильные ответы)
mypack.myfunc('22-JAN-07');
mypack.myproc(35);(*)
ЕСЛИ НЕ mypack.myfunc(SYSDATE), ТО
DBMS_OUTPUT.PUT_LINE('Message'); КОНЕЦ ЕСЛИ;(*)
myproc(40);
v_num := mypack.myproc(22);

34. Что из следующего НЕ может быть частью пакета?


Процедуры
Явные курсоры
Триггеры (*)
Функции
Глобальные переменные

35. Что не так со следующим синтаксисом для создания спецификации


пакета?

СОЗДАТЬ ИЛИ ЗАМЕНИТЬ ПАКЕТ mypack ISg_constant1


NUMBER(6) := 100;
ФУНКЦИЯ func1 (p_param1 IN VARCHAR2);
ФУНКЦИЯ func2;
g_constant1 ЧИСЛО(6):= 100;
ФУНКЦИЯ func1 (p_param1 IN VARCHAR2);
ФУНКЦИЯ func2;
ЗАВЕРШИТЬ мой пакет;

Вы не можете объявлять константы в спецификации.


Пакет должен содержать хотя бы одну процедуру.
Должен быть указан тип данных RETURN функций. (*)
Первая строка должна быть: CREATE OR REPLACE PACKAGE
SPECIFICATION mypack IS Все в порядке, этот код не содержит
ошибок.

36. Что не так со следующим кодом?

СОЗДАЙТЕ ИЛИ ЗАМЕНИТЕ ТРИГГЕР loc_trigg ПЕРЕД


УДАЛЕНИЕМ НА НАЧАЛЕ
RAISE_APPLICATION_ERROR
(-20201,'Недопустимое удаление');
ОТКАТ;
КОНЕЦ;

КОНЕЦ loc_trigg;
триггер.

ПЕРЕД УДАЛЕНИЕМ местоположений (*) и выполнить успешно.


Последняя строка должна быть: Вы не можете использовать
RAISE_APPLICATION_ERROR внутри
. Вторая строка должна быть: Вы не можете использовать ROLLBACK
внутри триггера.
Ничего страшного, этот триггер скомпилирует

37. Что не так со следующим кодом?


СОЗДАЙТЕ ИЛИ ЗАМЕНИТЕ ТРИГГЕР emp_dept_trigg ПЕРЕД
ОБНОВЛЕНИЕМ ИЛИ УДАЛЕНИЕМ сотрудников, отделов НАЧАЛО
...

Один триггер может быть связан только с одной таблицей (*)


Вторая строка должна быть: ПЕРЕД (ОБНОВЛЕНИЕ, УДАЛЕНИЕ)
ON сотрудников, отделов
Триггеры DML должны быть триггерами строк, поэтому FOREACH
ROW отсутствует
Вторая строка должна быть: ПЕРЕД ОБНОВЛЕНИЕМ ИЛИ
УДАЛЕНИЕМ ON сотрудников ИЛИ отделов

38. Триггер оператора DML срабатывает только один раз для каждого
инициирующего оператора DML, тогда как триггер строки срабатывает
один раз для каждой строки, обработанной оператором триггера.
Правда или ложь?
True (*)
False

39. Следующий код успешно создаст emp_trigg: True или False?


СОЗДАЙТЕ ИЛИ ЗАМЕНИТЕ ТРИГГЕР emp_trigg ПЕРЕД
УДАЛЕНИЕМ зарплаты НА сотрудников
НАЧАТЬ RAISE_APPLICATION_ERROR (-20202, 'Удаление зарплаты
не разрешено');
КОНЕЦ;

Верно
Ложно (*)

40. В пакете общедоступные компоненты объявлены в спецификации, а


частные компоненты — нет. Правда или ложь?
Верно (*)
Ложно
41. Пакет NEWPACK содержит несколько процедур и функций,
включая приватную функцию PRIVFUNC. Откуда можно вызвать
PRIVFUNC? (Выберите два варианта.) (Выберите все правильные
ответы)

Из анонимного блока
Из любой процедуры в NEWPACK (*)
Из любой приватной функции в другом пакете
Из любой функции в NEWPACK (*)
Из любой общедоступной процедуры в другом пакете

42. Какой из ниже будет отображаться подробный код подпрограмм в


пакете DEPTPACK в вашей схеме?
ВЫБЕРИТЕ текст FROM USER_SOURCE
WHERE name = 'DEPTPACK'
AND type = 'PACKAGE'ORDER BY line;

ВЫБРАТЬ текст ИЗ ПОЛЬЗОВАТЕЛЬСКОГО_ИСТОЧНИКА,


ГДЕ name = 'DEPTPACK'
AND type = 'PACKAGE BODY'ORDER BY line; (*)

SELECT text FROM USER_SOURCE


WHERE object_name = 'DEPTPACK'AND object_type = 'PACKAGE
BODY'ORDER BY line;
AND object_type = 'PACKAGE BODY'ORDER BY line;

ВЫБЕРИТЕ текст FROM USER_SOURCE


WHERE name = 'DEPTPACK'
AND type = 'BODY'ORDER BY line;

43. Пакет OLDPACK находится в вашей схеме. Что произойдет, когда


будет выполнен следующий оператор?
УДАЛИТЬ ПАКЕТ oldpack;

Тело будет удалено, но спецификация сохранится.


Спецификация будет удалена, но тело останется.
И спецификация, и корпус будут убраны. (*)
Оператор завершится ошибкой, потому что вы должны удалить тело,
прежде чем вы сможете удалить спецификацию.
44. При внесении изменений в подробный код публичной процедуры в
пакете (но не в имя или параметры процедуры) необходимо
перекомпилировать как спецификацию, так и тело. Правда или ложь?

Верно Неверно
(*)

45. Ваша схема содержит четыре пакета, каждый из которых имеет


спецификацию и тело. Вам также предоставлены права доступа к трем
пакетам (и их телам) в схемах других пользователей. Что выведет на
экран следующий запрос?
SELECT COUNT(*) FROM ALL_OBJECTSWHERE object_type LIKE
'PACK%'
AND owner <> USER;

14
7
3
6 (*)
0

46. Мы хотим удалить спецификацию (но не тело) пакета BIGPACK из


базы данных.
Какая из следующих команд сделает это?

DROP PACKAGE бигпак;


ХАРАКТЕРИСТИКИ ПАКЕТА DROP bigpack;
DROP PACKAGE bigpack СПЕЦИФИКАЦИЯ;
DROP PACKAGE HEADER bigpack;
Ничего из вышеперечисленного (*)

47. Изучите следующий код. Какой код должен быть включен в строку
A, чтобы создать триггер строки?
СОЗДАТЬ ТРИГГЕР dept_triggПОСЛЕ ОБНОВЛЕНИЯ ИЛИ
УДАЛЕНИЯ В отделах -- Строка А
НАЧАТЬ...

ПОСЛЕ КАЖДОЙ СТРОКИ ДЛЯ КАЖДОЙ СТРОКИ ДЛЯ КАЖДОЙ


СТРОКИ (*) НА КАЖДОЙ СТРОКЕ НА КАЖДОЙ
СТРОКЕ 48. С каким типом триггера можно использовать
квалификаторы :OLD и :NEW ? DDL-триггеры
Триггеры событий базы данных Триггеры операторов Триггеры строк
(*) Триггеры AFTER 49. В следующем коде: CREATE TRIGGER
mytriggINSTEAD OF INSERT OR UPDATE ON my_object_nameFOR
EACH ROW BEGIN ... my_object_name может быть именем таблицы.
Правда или ложь? Верно Неверно (*) 50. Изучите следующий триггер.
Это должно вызвать ошибку приложения, если пользователь
попытается обновить фамилию сотрудника. Он должен разрешать
обновления всех остальных столбцов таблицы EMPLOYEES. Что
должно быть закодировано в строке А? СОЗДАТЬ ТРИГГЕР
stop_ln_trigg ПЕРЕД ОБНОВЛЕНИЕМ ДЛЯ СОТРУДНИКОВ
НАЧАТЬ --Строка A RAISE_APPLICATION_ERROR(-20201,
'Обновление фамилии не разрешено'); КОНЕЦ ЕСЛИ; КОНЕЦ;

1. When inserting a row into a table, the VALUES clause must include a
value for every column of the table. True or False? (1) Points

True
False (*)

2. What would be the result of the following statement: DELETE


employees; (1) Points

Nothing, no data will be changed.


All rows in the employees table will be deleted. (*)
The statement will fail because it contains a syntax error.
The row with EMPOYEE_ID=100 will be deleted.

3. Is it possible to insert more than one row at a time using an INSERT


statement with a VALUES clause? (1) Points

No, you can only create one row at a time when using the VALUES
clause. (*)
Yes, you can list as many rows as you want, just remember to separate the
rows with commas.
No, there is no such thing as INSERT ... VALUES.

4. What is wrong with the following statement?


MERGE INTO emps e
USING new_emps ne
ON (e.employee_id = ne.employee_id)
WHEN MATCHED
THEN UPDATE SET ne.salary = e.salary
WHEN NOT MATCHED
THEN INSERT VALUES
(ne.employee_id, ne.first_name, ne.last_name, .... ne.salary, ....);
(1) Points

The UPDATE clause must include the target table name: UPDATE emps
SET ....
The INSERT clause must include a column list as well as a list of column
values.
The SET clause is trying to update the source table from the target table.
(*)
Nothing is wrong, the statement will execute correctly.

5. You want to modify existing rows in a table. Which of the following are
NOT needed in your SQL statement? (Choose two). (1) Points

A MODIFY clause.
An UPDATE clause.
The name of the table.
The name of the column(s) you want to modify.
A new value for the column you want to modify (this can be an
expression or a subquery).
A WHERE clause, (*)

6. What is wrong with the following statement?


DELETE from employees WHERE salary > (SELECT MAX(salary) FROM
employees);
(1) Points

You cannot code a subquery inside a DELETE statement.


You cannot use inequality operators such as "<" and ">" inside a
DELETE statement.
Nothing is wrong, the statement will execute correctly. (*)

7. Look at this SQL statement:


MERGE INTO old_trans ot
USING new_trans nt
ON (ot.trans_id = nt.trans_id) .... ;

OLD_TRANS is the source table and NEW_TRANS is the target table. True
or false?
(1) Points

True
False (*)

8. To modify an existing row in a table, you can use the ________


statement. (1) Points

MODIFY
INSERT
ALTER
UPDATE (*)

[16:13, 20.05.2022] brgmthehrzn: 1. Examine the following code:


CREATE TRIGGER emp_triggAFTER UPDATE OF salary ON
employeesFOR EACH ROW
DECLARE
v_count NUMBER;
BEGIN
--Line A
END;
Which of the following statements is NOT allowed at Line A?

SELECT count(*) INTO v_count FROMdepartments;


UPDATE employees SET job_id = 'IT_PROG' WHEREemployee_id
= :OLD.employee_id;
SELECT count() INTO v_count FROM employees;()
DBMS_OUTPUT.PUT_LINE('A salary was updated');
None. All of the above are allowed.

2. Which of the following statements could cause a DDLtrigger to fire?


DROP TABLE employees;
ALTER TABLE departments ADD (budgetNUM…
[16:15, 20.05.2022] brgmthehrzn: Oracle Quiz Questions
Oracle Quiz Answers. Oracle Quiz Questions An asterisk (*) indicates a
correct answer.
Home

sâmbătă, 16 februarie 2013
PLSQL Mid Term Exam Semester 1

1. Which of the following declarations is invalid?


v_count PLS_INTEGER:=0;
college_name VARCHAR2(20):='Harvard';
v_pages CONSTANT NUMBER; (*)
v_start_date DATE := sysdate+1;

2. Which of the following should NOT be used as the name ofa variable?
A table name.
A table column name. (*)
The database name.

3.
1. Null
2. False
3. True
4. 0
Which of the above can be assigned to a Boolean variable?

2 and 3
2, 3 and 4
1, 2 and 3 (*)
1, 2, 3 and 4

4. The following anonymous block of code is run:


BEGIN
INSERT INTO countries (id, name)
VALUES ('XA', 'Xanadu');
INSERT INTO countries (id, name)
VALUES ('NV','Neverland');
COMMIT;
COMMIT;
ROLLBACK;
END;
What happens when the block of code finishes?
You have nothing new; the last ROLLBACK undid the INSERTs.
You have the rows added twice; there are four new rows.
You have the two new rows added. (*)
You get an error; you cannot COMMIT twice in a row.

5. Which of the following best describes a databasetransaction?


All the DML statements in a single PL/SQL block
A related set of SQL DML statements which must be executed
eithercompletely or not at all (*)
A single SQL statement that updates multiple rows of a table
A SELECT statement based on a join of two or more database tables

6. Which of the following are valid identifiers? (Choose two.) (Choose all
correct answers)
Full Name
students_street_address (*)
v_code (*)
#hours
completion_%

7. Which of the following are valid identifiers? (Choosetwo.) (Choose all


correct answers)
yesterday (*)
yesterday's date
number_of_students_in_the_class
v$testresult (*)
#students

8. Which of the following are PL/SQL lexical units? (Choosetwo.) (Choose


all correct answers)
Identifiers (*)
Table Columns
Reserved Words (*)
Anonymous Blocks
SQL Workshop

9. What will be displayed when the following code isexecuted?


DECLARE
varA NUMBER := 12;
BEGIN
DECLARE
varB NUMBER := 8;
BEGIN
varA := varA + varB;
END;
DBMS_OUTPUT.PUT_LINE(varB);
END;

8
12
Nothing, the block will fail with an error (*)
20
VarB

10. In the following code, Line A causes an exception. Whatvalue will be


displayed when the code is executed?
DECLARE
outer_var VARCHAR2(50) := 'My';
BEGIN
outer_var := outer_var || ' name';
DECLARE
inner_var NUMBER;
BEGIN
inner_var := 'Mehmet'; --Line A
outer_var := outer_var || ' is';
END;
outer_var := outer_var || ' Zeynep';
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(outer_var);
END;

My
My name (*)
My name is
My name is Zeynep

11. When nested blocks are used, which blocks can or must be labeled?
The inner block must be labeled, the outer block can be labeled.
Both blocks must be labeled
Nested blocks cannot be labeled
The outer block must be labeled if it is to be referred to in the inner block.
(*)
12. What will be displayed when the following code isexecuted?
DECLARE
x VARCHAR2(6) := 'Chang';
BEGIN
DECLARE
x VARCHAR2(12) := 'Susan';
BEGIN
x := x || x;
END;
DBMS_OUTPUT.PUT_LINE(x);
END;

Susan
Chang (*)
ChangChang
SusanChang
The code will fail with an error

13. Examine the following code. At Line A, we want to assigna value of 22


to the outer block's variable v_myvar. What code should wewrite at Line A?
<<outer_block>>
DECLARE
v_myvar NUMBER;
BEGIN
<<inner_block>>
DECLARE
v_myvar NUMBER := 15;
BEGIN
--Line A
END;
END;

outer_block.v_myvar := 22; (*)


v_myvar := 22;
<<outer_block>>.v_myvar := 22;
v_myvar(outer_block) := 22;
We cannot reference the outer block's variable because both variables have
the same name

14. Which one of these SQL statements can be directlyincluded in a PL/SQL


executable block?
DELETE FROM employeesWHERE department_id=60;(*)
SELECT salary FROM employeesWHERE department_id=60;
CREATE TABLE new_emps (last_name VARCHAR2(10), first_name
VARCHAR2(10));
DROP TABLE locations;

15. Which of the following is NOT a good guideline forretrieving data in


PL/SQL?
Declare the receiving variables using %TYPE
The WHERE clause is optional in nearly all cases. (*)
Specify the same number of variables in the INTO clause as
databasecolumns in the SELECT clause.
THE SELECT statement should fetch exactly one row.

16. A variable is declared as:


DECLARE
v_salary employees.salary%TYPE;
BEGIN
Which of the following is a correct use of the INTO clause?
SELECT salaryINTO v_salaryFROM employeesWHERE
employee_id=100;(*)
SELECT v_salaryINTO salaryFROM employeesWHERE
employee_id=100;
SELECT salaryFROM employeesINTO v_salary;
SELECT salaryFROM employeesWHERE employee_id=100INTO
v_salary;

17. Which rows will be deleted from the EMPLOYEES table when the
following code is executed?
DECLARE
salary employees.salary%TYPE := 12000;
BEGIN
DELETE FROM employeesWHERE salary > salary;
END;

All rows whose SALARY column value is greater than 12000.


All rows in the table.
No rows. (*)
All rows whose SALARY column value is equal to 12000.

18. Which one of these SQL statements can be directlyincluded in a PL/SQL


executable block?
SELECT last_name FROM employeesWHERE employee_id=100;
DESCRIBE employees;
UPDATE employeesSET last_name='Smith';(*)
DROP TABLE employees;

19. Evaluate the following declaration. Determine whether ornot it is legal.


DECLARE
maxsalary NUMBER(7) = 5000;

Correct.
Not correct. (*)

20. Assignment statements can continue over several lines inPL/SQL. True
or False?
True (*)
False

21. When a variable is defined using the CONSTANT keyword, the value
ofthe variable cannot change. True or False?
True (*)
False

22. Variables can be used in the following ways in a PL/SQLblock. (Choose


two.) (Choose all correct answers)
To store data values. (*)
To rename tables and columns.
To refer to a single data value several times. (*)
To comment code.

23. When a variable is defined using the NOT NULL keywords, the variable
must contain a value. True or False?
True (*)
False

24. PL/SQL is an Oracle proprietary, procedural, 4GLprogramming


language. True or False?
True
False (*)

25. A program which specifies a list of operations to be performed


sequentially to achieve the desired result can be called:

declarative
nondeclarative
procedural (*)
low level

26. Which of the following statements about PL/SQL and SQL is true?
PL/SQL and SQL are both ANSI-compliant.
PL/SQL and SQL can be used with many types of databases, including
Oracle.
PL/SQL and SQL are both Oracle proprietary programming languages.
PL/SQL allows basic program logic and control flow to be combined
with SQL statements. (*)

27. Which statements are optional in a PL/SQL block? (Choosetwo.)


(Choose all correct answers)
DECLARE (*)
BEGIN
EXCEPTION (*)
END;

28. What is the purpose of using DBMS_OUTPUT.PUT_LINE in aPL/SQL


block?
To perform conditional tests
To allow a set of statements to be executed repeatedly
To display results to check if our code is working correctly (*)
To store new rows in the database

29. Which of the following tools can NOT be used to developand test
PL/SQL code?
Oracle Jdeveloper
Oracle Application Express
Oracle JSQL (*)
Oracle iSQL*Plus

30. Given below are the parts of a PL/SQL block:


1. END;
2. EXCEPTION
3. DECLARE
4. BEGIN
Arrange the parts in order.

2,1,4,3
3,4,2,1 (*)
3,2,4,1
4,3,2,1

31. Every PL/SQL anonymous block must start with the keyword
DECLARE.
True or False?
True
False (*)

32. Which lines of code will correctly display the message"The cat sat on
the mat"? (Choose two.)
(Choose all correct answers)
DBMS_OUTPUT.PUT_LINE('The cat sat on the mat'); (*)
DBMS_OUTPUT.PUT_LINE(The cat sat on the mat);
DBMS_OUTPUT.PUT_LINE('The cat' || 'sat on the mat');
DBMS_OUTPUT.PUT_LINE('The cat sat ' || 'on the mat'); (*)

33. Errors are handled in the Exception part of the PL/SQLblock. True or
False?
True (*)
False

34. Which component of Oracle Application Express is used toenter and run
SQL statements and PL/SQL blocks?
Application Builder
SQL Workshop (*)
Utilities
Object Browser
Correct Correct

35. __ are meant to store large amounts of data.


Variables
Scalar data types
LOBs (*)

36. What is the data type of the variable V_DEPT_TABLE in the


followingdeclaration?
DECLARE
TYPE dept_table_type IS TABLE OF departments%ROWTYPE INDEX
BYPLS_INTEGER; v_dept_table dept_table_type; ...

Scalar
Composite (*)
LOB

37. Which of these are PL/SQL data types? (Choose three.) (Choose all
correct answers)
Scalar (*)
Identifier
Delimiter
Composite (*)
LOB (*)

38. What is the output when the following program isexecuted?


set serveroutput on
DECLARE
a VARCHAR2(10) := '333';
b VARCHAR2(10) := '444';
c PLS_INTEGER;
d VARCHAR2(10);
BEGIN
c := TO_NUMBER(a) + TO_NUMBER(b);
d := a || b;
DBMS_OUTPUT.PUT_LINE(c);
DBMS_OUTPUT.PUT_LINE(d);
END;

Nothing. The code will result in an error.


c=777 and d=333444 (=777 and d=333444 ()
c=777 and d=777
c=333444 and d=777

39. The implicit data type conversion at Point A may notwork correctly.
Why not?
DECLARE
v_mydate DATE;
BEGIN
V_MYDATE := '29-Feb-04'; --Point A
END;

There are only 28 days in February


Oracle cannot implicitly convert a character string to a date, even
if the string contains a valid date value
If the database language is not English, 'Feb' has no meaning. (*)
V_MYDATE has been entered in uppercase

40. If today's date is 14th June 2007, which statement willcorrectly convert
today's date to the value: June 14, 2007 ?
TO_CHAR(sysdate)
TO_DATE(sysdate)
TO_DATE(sysdate,'Month DD, YYYY')
TO_CHAR(sysdate, 'Month DD, YYYY') (*)

Incorrect Incorrect. Refer to Section 2.


Previous Page 8 of 10 Next Summary

41. PL/SQL can convert a VARCHAR2 value containing


alphabeticcharacters to a NUMBER value. True or False?
True
False (*)

42. What is wrong with this assignment statement?


myvar :=
'To be or not to be';
'That is the question';

An assignment statement must be a single line of code


Nothing is wrong, the statement is fine
An assignment statement must have a single semicolon at the end (*)
"myvar" is not a valid name for a variable
Character literals should not be enclosed in quotes

43. Examine the following code. What is the final value ofV_MYVAR ?
DECLARE
v_myvar NUMBER;
BEGIN
v_myvar := 1 + 2 * 3;
v_myvar := v_myvar * 2;
END;

81
49
14 (*)
18

44. Which of the following are valid assignment statements?


(Choose two.) (Choose all correct answers)
v_string = 'Hello';
v_string := Hello;
v_number := 17 + 34; (*)
v_string := 'Hello'; (*)
v_date := 28-DEC-06;

45. Examine the following code. What is the final value of V_MYBOOL ?
DECLARE
v_mynumber NUMBER;
v_mybool BOOLEAN ;
BEGIN
v_mynumber := 6;
v_mybool := (v_mynumber BETWEEN 10 AND 20);
v_mybool := NOT (v_mybool);
END;

True (*)
False

46. Examine the following code:


1 DECLARE
2 x NUMBER;
3 BEGIN
4 x:= '300';
5 END;
After line 4, what is the value of x?

'300'
300 (*)
NULL

47. TO_NUMBER, TO_CHAR, and TO_DATE are all examples of:

Implicit conversion functions


Explicit conversion functions (*)
Character functions
Operators

48. Assume there are 5 employees in Department 10. Whathappens when the
following statement is executed?
UPDATE employeesSET salary=salary*1.1;
All employees get a 10% salary increase. (*)
No rows are modified because you did not specify
"WHEREdepartment_id=10"
A TOO_MANY_ROWS exception is raised.
An error message is displayed because you must use the INTO clauseto hold
the new salary.

49. You declare an implicit cursor in the DECLARE section of


a PL/SQL block. True or False?
True
False (*)

50. A PL/SQL block includes the following statement:


SELECT last_name INTO v_last_name
FROM employeesWHERE employee_id=100;
What is the value of SQL%ISOPEN immediately after the SELECT
statement isexecuted?
True
False (*)
Null

Вам также может понравиться