a. Вставьте числа от 1 до 10, исключая 6 и 8.
b. Зафиксируйте изменения прежде, чем закончить блок.
c. Сделайте запрос к таблице MESSAGES, чтобы убедиться в том,что записи успешно вставлены.
RESULTS |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
7 |
|
9 |
|
10 |
2. Создайте блок PL/SQL, вычисляющий сумму комиссионных для данногослужащего в зависимости от его оклада.
a. Выполните скрипт-файл lab18_2.sqlдля включения новогослужащего в таблицу ЕМР.Примечание: оклад нового служащего не определен (NULL).
b. Введите номер служащего с помощью переменной подстановки SQL*Plus.
c. Если оклад служащего менее $1,000, сумма комиссионных должнасоставить 10% от оклада.
d. Если оклад служащего находится в диапазоне от $1,000 до $1,500,сумма комиссионных должна составить 15% от оклада.
e. Если оклад служащего превышает $1,500, сумма комиссионных должнасоставить 20% от оклада.
f. Если оклад служащего не определен (NULL), сумма комиссионных дляэтого служащего должна быть равна нулю.
g. Зафиксируйте транзакцию.
h. Для проверки своего блока PL/SQL используйте следующую таблицу сданными.
Номер служащего |
Оклад |
Сумма комиссионных |
7369 |
800 |
80 |
7934 |
1300 |
195 |
7499 |
1600 |
320 |
8000 |
NULL |
NULL |
EMPNO |
ENAME |
SAL |
СОММ |
8000 |
DOE |
0 |
|
7499 |
ALLEN |
1600 |
320 |
7934 |
MILLER |
1300 |
195 |
7369 |
SMITH |
800 |
80 |
3. Измените скрипт-файл p15q4.sqlтак, чтобы вставлять в таблицу MESSAGES текст "Numberisodd” ("Нечетное число") или "Numberis even” (“Четное число”) в зависимости от того, нечетное число или четное. Создайте запрос к таблице MESSAGES, чтобы проверить, работает ливаш код.
RESULTS |
Number is even |
4. Добавьте в таблицу ЕМР столбец STARS для хранения звездочек (*).
5. Создайте блок PL/SQL, который добавляет по звездочке в столбец STARS за каждые $100 оклада служащего. Округлите оклад до ближайшегоцелого числа. Сохраните свой блок PL/SQL в файлеp18q5.sql
a. Получите от пользователя идентификатор служащего черезпеременную подстановки SQL*Plus.
b. Создайте переменную для хранения строки звездочек: инициализируйтеее с начальным значением NULL.
c. Добавьте в эту строку по одной звездочке на каждые $100 оклада.Если, например, оклад служащего составляет $800, строка должнавключать 8 звездочек.
d. Вставьте строку звездочек в столбец STARS для служащего.
e. Зафиксируйте изменение.
f. Проверьте работу блока в случае, если служащий не имеетоклада и если служащий имеет оклад.
Please enter the employee number: 7934 |
||
PL/SQL procedure successfully completed. |
||
Please enter the employee number: 8000 |
||
PL/SQL procedure successfully completed. |
||
EMPNO |
SAL |
STARS |
8000 |
||
7934 |
1300 |
************* |
Практическое занятие 19
На этом практическом занятии вы будете определять, создавать и использовать таблицы PL/SQL.
1. Выполните скрипт-файл lab19_1.sql для создания таблицы, где будет храниться информация о служащих и их окладах.
SQL> |
GREATE TABLE |
top_dogs |
2 |
(name |
VARCHAR2(25), |
3 |
salary |
NUMBER(11, 2)); |
2. Создайте блок PL/SQL для выборки фамилии и оклада служащего из таблицы ЕМР по номеру служащего. Используйте для этого составной тип TABLEPL/SQL.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.